PHP: добавление лет к метке времени - PullRequest
14 голосов
/ 02 марта 2011

В PHP, учитывая временную метку UTC, я бы хотел добавить ровно N лет. Это должно учитывать високосные годы.

Спасибо.

Ответы [ 4 ]

48 голосов
/ 02 марта 2011
$newTimestamp = strtotime('+2 years', $timestamp);

При необходимости заменить "+2 года".

ref: http://php.net/manual/en/function.strtotime.php

8 голосов
/ 02 марта 2011
$date = new DateTime();
$date->add(new DateInterval('P10Y'));

добавляет 10 лет (10Y) к «сегодня». DateTime только в PHP 5.3, хотя.

1 голос
/ 05 июля 2012

Одна вещь, которую вы должны учитывать, когда вы делаете это.

$newTimestamp = strtotime('+2 years', $timestamp);

Это в сумме составляет 2 года (720 или 721 дней).Если вы просто хотите сохранить тот же день и месяц и добавить 2 дополнительных года в отметку времени

, вам нужно использовать mktime.

Пример

$timestamp = mktime(0, 0, 0, $month, $day, $year+2);`
0 голосов
/ 06 декабря 2013
$date    = "1998-08-14";

$newdate = strtotime ( '+2 years' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );

echo $newdate;

эхо

2000-08-14
...