У меня есть форма php, которая требует от пользователя ввода даты. У меня есть три флажка, которые они могут выбрать: «сегодня», «завтра» и «другие» (когда другие требуют, чтобы они указали конкретную дату в поле.
Я хочу, чтобы «сегодня» распечатывал текущий день, «завтра» распечатывал завтрашний день / дату, а «другой» распечатывал дату, которую они выбирают. Формат должен быть «День, месяц, дата» (пятница, 8 июля).
На сегодняшний день это довольно просто, просто используйте массив getdate (), но есть ли простой способ получить завтрашнюю дату (не требуя многократных шагов / проверки ошибок)? И есть ли простой способ преобразовать выходные данные (и день недели хранится в выходных данных для type = date)?
Ты можешь использовать StrToTime.
Завтра: <? $tomorrow = strotime("+1 day"); ?>
Для любой даты вам нужно разобрать ее, с strotime($date_input);
Однако следует помнить, что PHP пытается выяснить формат даты, при этом даты, разделенные косыми чертами, являются американским стандартом (M / D / Y), а даты, разделенные черточками, являются международными (D-M-Y).
Для дня недели это параметр (l
) к Дата функция. Таким образом, для печати в формате, который вы хотите:
echo date('l, F d', strtotime($date));
date('l F\, d', strtotime(' +1 day'));
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 для полного списка возможных форматов.