Подтвердить что ты не робот

$ date + 1 год?

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

Мой код выглядит следующим образом:

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

Он возвращает неверную дату. Любые идеи, почему?

4b9b3361

Ответ 1

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

$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"));

Ответ 2

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

$futureDate через год!

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

$futureDate - один год из $startDate!

Ответ 3

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

Ответ 4

// 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;

Ответ 5

имела такую ​​же проблему, однако это было самое простое решение:

<?php (date('Y')+1).date('-m-d'); ?>

Ответ 6

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

date_default_timezone_set()

Ответ 7

strtotime() возвращает bool(false), потому что он не может разобрать строку '+one year' (она не понимает "один" ). false затем неявно отображается в integer timestamp 0. Это хорошая идея, чтобы проверить вывод strtotime() не bool(false), прежде чем переходить в другие функции.

Из документов:

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

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

Ответ 8

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

$nextyear  = date("M d,Y",mktime(0, 0, 0, date("m",strtotime($startDate)),   date("d",strtotime($startDate)),   date("Y",strtotime($startDate))+1));

Ответ 9

Я предпочитаю подход OO:

$date = new \DateTimeImmutable('today'); //'today' gives midnight, leave blank for current time.
$futureDate = $date->add(\DateInterval::createFromDateString('+1 Year'))

Используйте DateTimeImmutable, иначе вы также измените исходную дату! more on DateTimeImmutable: http://php.net/manual/en/class.datetimeimmutable.php


Если вы просто хотите от сегодняшней даты, вы всегда можете:

new \DateTimeImmutable('-1 Month');

Ответ 10

Существует также более простое и менее сложное решение:

$monthDay = date('m/d');
$year = date('Y')+1;
$oneYearFuture = "".$monthDay."/".$year."";
echo"The date one year in the future is: ".$oneYearFuture."";

Ответ 11

//1 year from today date
echo date('d-m-Y', strtotime('+1 year'));

//1 year from from specific date
echo date('22-09-Y', strtotime('+1 year'));

надеюсь, что этот более простой бит кода поможет кому-то в будущем:)

Ответ 12

В моем случае (я хочу добавить 3 года к текущей дате) решение было:

$future_date = date('Y-m-d', strtotime("now + 3 years"));

В Гардене, Треби и Даниэле Лиме: что будет с 29 февраля? Иногда в феврале всего 28 дней:)

Ответ 13

Остальной мир

$now = time(); 
$future = date("d-m-Y", strtotime(date("d-m-Y", $now) . " + 1 year"));
echo $future;

США

$now = time(); 
$future = date("Y-m-d", strtotime(date("Y-m-d", $now) . " + 1 year"));
echo $future;