Я пытаюсь получить дату, которая является одним годом с даты, которую я указываю.
Мой код похож на это:
$futureDate=date('Y-m-d', strtotime('+one year', $startDate));
Это возвращает неправильную дату. Какие-либо идеи, почему?
Чтобы добавить один год к сегодняшней дате, используйте следующее:
$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"));
Попробуйте: $ futureDate = date ('Ym-d', strtotime ('+ 1 year', $ startDate));
Если вы используете PHP 5.3, это потому, что вам нужно установить часовой пояс по умолчанию:
date_default_timezone_set()
Попробуйте это
$nextyear = date("M d,Y",mktime(0, 0, 0, date("m",strtotime($startDate)), date("d",strtotime($startDate)), date("Y",strtotime($startDate))+1));
strtotime ()
возвращает bool (false)
, потому что он не может проанализировать строку '+ one year'
(it не понимает «один»). false
затем неявно приводится к целочисленному
метке времени 0
. Хорошая идея - убедиться, что вывод strtotime ()
не является bool (false)
, прежде чем вставлять его в другие функции.
Возвращаемые значения
Возвращает отметку времени в случае успеха, FALSE. иначе. До PHP 5.1.0 это функция вернет -1 в случае ошибки.