$дата + 1 год?
Я пытаюсь получить дату, которая составляет один год с даты уточняю.
мой код выглядит так:
$futureDate=date('Y-m-d', strtotime('+one year', $startDate));
он возвращает неправильную дату. Есть идеи почему?
12 ответов:
чтобы добавить один год к сегодняшней дате, используйте следующее:
$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('Y-m-d', strtotime('+1 year'));
$ futureDate через год!
$futureDate=date('Y-m-d', strtotime('+1 year', strtotime($startDate)) );
$futureDate - это один год от $startDate!
просто была такая же проблема, однако это было самое простое решение:
<?php (date('Y')+1).date('-m-d'); ?>
// Declare a variable for this year $this_year = date("Y"); // Add 1 to the variable $next_year = $this_year + 1; $year_after = $this_year + 2; // Check your code echo "This year is "; echo $this_year; echo "<br />"; echo "Next year is "; echo $next_year; echo "<br />"; echo "The year after that is "; echo $year_after;
Если вы используете PHP 5.3, это потому, что вам нужно, чтобы установить часовой пояс по умолчанию:
date_default_timezone_set()
strtotime()
возвращаетсяbool(false)
, потому что он не может разобрать строку'+one year'
(он не понимает "один").false
затем неявно приводится кinteger
метка0
. Это хорошая идея, чтобы проверить 's неbool(false)
перед тем, как вы идете пихать его в другие функции.Возвращаемые Значения
возвращает метку времени на успех, FALSE иначе. До PHP 5.1.0, это функция вернет -1 при ошибке.
Я предпочитаю подход OO:
$date = new \DateTimeImmutable('today'); //'today' gives midnight, leave blank for current time. $futureDate = $date->add(\DateInterval::createFromDateString('+1 Year'))
использовать
DateTimeImmutable
в противном случае вы также измените исходную дату! подробнее о DateTimeImmutable:http://php.net/manual/en/class.datetimeimmutable.php
Если вы просто хотите от сегодняшней даты, то вы всегда можете это сделать:
new \DateTimeImmutable('-1 Month');
//1 year from today's date echo date('d-m-Y', strtotime('+1 year')); //1 year from from specific date echo date('22-09-Y', strtotime('+1 year'));
надеюсь, что этот более простой бит кода поможет кому-то в будущем :)
Попробуй Такое
$nextyear = date("M d,Y",mktime(0, 0, 0, date("m",strtotime($startDate)), date("d",strtotime($startDate)), date("Y",strtotime($startDate))+1));