Я пропускаю выбранную пользователем дату между страницами и вызывая целую дату без каких-либо проблем. Теперь я хочу ТОЛЬКО взять год из «fromdate» и «todate». У меня есть код ниже, чтобы передать дату
<? $fromdatePost = $_POST["report_date_from"]; $todatePost = $_POST["report_date_to"]; $fromdate = $_POST["report_date_from"] .' 00:00:00'; $fromdate = preg_replace('#(\d{2})/(\d{2})/(\d{4})\s(.*)#', '$3-$2-$1 $4', $fromdate); $todate = $_POST["report_date_to"] .' 00:00:00'; $todate = preg_replace('#(\d{2})/(\d{2})/(\d{4})\s(.*)#', '$3-$2-$1 $4', $todate); ?>
Затем я показываю дату, используя любой из приведенных ниже
'" . $fromdate ."'
или
'" . $fromdate ."'
Как мне получить, чтобы показывать только год, а не всю дату ?!
Спасибо за любую помощь!
Вы можете использовать следующий код, чтобы получить год:
$year = date('Y', strtotime($fromdate));
Чтобы перефразировать первый комментарий, регулярные выражения здесь не нужны.
Объектно-ориентированный способ сделать это:
$date = new DateTime($fromdate); $year = $date->format('Y');
Хотя я обычно чувствую, что strtotime немного удобнее. ПРИМЕЧАНИЕ. Если вы не передадите какие-либо параметры объекту DateTime (), он заполнит текущую дату и время.