PHP - добавить 1 день в формате даты мм-дд-гггг
<?php
$date = "04-15-2013";
$date = strtotime($date);
$date = strtotime("+1 day", $date);
echo date('m-d-Y', $date);
?>
Это сводит меня с ума и кажется таким простым. Я довольно новичок в PHP, но я не могу понять это. Эхо возвращается 01-01-1970
,
$ Date будет приходить от POST
в формате m-d-Y
Мне нужно добавить один день и иметь его в качестве новой переменной для последующего использования.
Должен ли я конвертировать $date в Y-m-d
, добавить 1 день, а затем преобразовать обратно в m-d-Y
? Буду ли я лучше научиться использовать DateTime
?
7 ответов
Вот и ты
$date = "04-15-2013";
$date1 = str_replace('-', '/', $date);
$tomorrow = date('m-d-Y',strtotime($date1 . "+1 days"));
echo $tomorrow;
это будет выводить
04-16-2013
$date = DateTime::createFromFormat('m-d-Y', '04-15-2013');
$date->modify('+1 day');
echo $date->format('m-d-Y');
Или в PHP 5.4+
echo (DateTime::createFromFormat('m-d-Y', '04-15-2013'))->modify('+1 day')->format('m-d-Y');
ссылка
DateTime::createFromFormat()
Используйте http://www.php.net/manual/en/datetime.add.php как
$date = date_create('2000-01-01');
date_add($date, date_interval_create_from_date_string('1 days'));
echo date_format($date, 'Y-m-d');
выход
2000-01-2
Формат, который вы использовали, не распознается strtotime(). замещать
$date = "04-15-2013";
от
$date = "04/15/2013";
Или если вы хотите использовать -
затем используйте следующую строку с указанием года вперед:
$date = "2013-04-15";
На самом деле, я хотел сделать то же самое, чтобы получить дату на год назад для данной даты!:-)
С намеком на ответ выше @mohammad mohsenipur я попал по следующей ссылке, по его данной ссылке!
К счастью, есть метод, аналогичный методу date_add, названный методом date_sub!:-) Я делаю следующее, чтобы сделать то, что я хотел!
$date = date_create('2000-01-01');
date_sub($date, date_interval_create_from_date_string('1 years'));
echo date_format($date, 'Y-m-d');
Надеюсь, этот ответ тоже кому-нибудь поможет!:-)
Удачи, ребята!
Попробуйте с кодом ниже:
<?php
$date = "2022-01-05";
$to_date = date('Y-m-d', strtotime($date.' +1 day'));
echo $to_date;
?>
Output:
2022-01-06