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

Документация для обеих функций
Дата
StrToTime

$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()
$date = strtotime("+1 day");
echo date('m-d-y',$date);

Используйте 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
Другие вопросы по тегам