$date + 1 год?

Я пытаюсь получить дату, которая является одним годом с даты, которую я указываю.

Мой код похож на это:

$futureDate=date('Y-m-d', strtotime('+one year', $startDate));

Это возвращает неправильную дату. Какие-либо идеи, почему?

75
задан abatishchev 14 December 2011 в 11:50
поделиться

5 ответов

Чтобы добавить один год к сегодняшней дате, используйте следующее:

$oneYearOn = date('Y-m-d',strtotime(date("Y-m-d", mktime()) . " + 365 day"));

Для других примеров вы должны инициализировать $ StartingDate значением временной метки например:

$StartingDate = mktime();  // todays date as a timestamp

Попробуйте этот

$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 365 day"));

или

$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 1 year"));
84
ответ дан 24 November 2019 в 11:24
поделиться

Попробуйте: $ futureDate = date ('Ym-d', strtotime ('+ 1 year', $ startDate));

8
ответ дан 24 November 2019 в 11:24
поделиться

Если вы используете PHP 5.3, это потому, что вам нужно установить часовой пояс по умолчанию:

date_default_timezone_set()
2
ответ дан 24 November 2019 в 11:24
поделиться

Попробуйте это

$nextyear  = date("M d,Y",mktime(0, 0, 0, date("m",strtotime($startDate)),   date("d",strtotime($startDate)),   date("Y",strtotime($startDate))+1));
1
ответ дан 24 November 2019 в 11:24
поделиться

strtotime () возвращает bool (false) , потому что он не может проанализировать строку '+ one year' (it не понимает «один»). false затем неявно приводится к целочисленному метке времени 0 . Хорошая идея - убедиться, что вывод strtotime () не является bool (false) , прежде чем вставлять его в другие функции.

Из документации:

Возвращаемые значения

Возвращает отметку времени в случае успеха, FALSE. иначе. До PHP 5.1.0 это функция вернет -1 в случае ошибки.

2
ответ дан 24 November 2019 в 11:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: