2016-07-08 2 views
-2

У меня есть php-форма, которая требует, чтобы пользователь вводил дату. У меня есть три флажка, которые они могут выбрать: «сегодня», «завтра» и «другое» (где другие требуют от них ввести конкретную дату в поле.Лучший способ конвертировать/показать дату

Я хочу «сегодня» распечатать текущий день, «завтра», чтобы распечатать завтрашний день/дату и «другое», чтобы распечатать выбранную им дату. Формат должен быть «День, месяц» (пятница, 8 июля).

Для сегодняшней даты это довольно просто, просто используйте массив getdate(), но есть ли простой способ получить дату завтрашнего дня (не требуя нескольких шагов/проверки ошибок)? И есть простой способ преобразования вывода (и является днем неделя, хранящаяся на выходе для типа = дата)?

+0

Проверьте PHP [дату] (http://php.net/manual/en/function.date.php) и [strtotime] (http://php.net/manual/en/function.strtotime.php). – mcon

ответ

1

Вы можете использовать strtotime.

Завтра: <? $tomorrow = strotime("+1 day"); ?>

Для любой даты вы должны разобрать его, с strotime($date_input);, однако следует помнить, что PHP пытается выяснить формат дату, с датами, разделенных косой чертой, являющейся американский стандарт (M/D/Y) и даты, разделенные тире, которые являются международными (DMY).

В будний день это параметр (l) на функцию date. Таким образом, для печати в формате, который вы хотите:

echo date('l, F d', strtotime($date)); 
+0

Итак, для другого поля даты я сделал это: «$ date = strtotime ($ _ POST ['pickupDateOther']); и когда я ввел дату (03-14-2017), он показывает: «1489464000» – djd97

+0

Это отметка времени даты, которая будет передана как второй параметр в «date». Строка в формате, который вы хотите получить, определяется '$ dateFormatted = date ('l, F d', $ date);' – asiviero

+0

Извините, я пропустил, что ваша '$ date' уже имеет' strtotime'. Не нужно называть его снова при форматировании – asiviero

0

DateTime класс принимает много типов даты входов, как:

$string = "today" or "tomorrow" or "1 day" or "10 years" 
$date = new DateTime($string); 

Затем вы можете отформатировать дату, однако вы хотите:

$formattedDate = $date->format('l, F jS'); 

Это будет отформатировать дату как: Friday, July 8th

См. http://php.net/manual/en/function.date.php для полного списка возможных форматов.