18

在给定 UTC 时间戳的 PHP 中,我想精确地添加 N 年。这应该考虑闰年。

谢谢你。

4

4 回答 4

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

根据需要替换“+2 年”。

参考: http: //php.net/manual/en/function.strtotime.php

于 2011-03-02T20:15:11.163 回答
8
$date = new DateTime();
$date->add(new DateInterval('P10Y'));

10Y“今天”加上 10 年 ( )。不过,DateTime 仅在 PHP 5.3 中提供。

于 2011-03-02T20:15:15.810 回答
1

当你这样做时,你应该考虑一件事。

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

这加起来是 2 年(720 或 721 天)。如果您只想保持相同的日期和月份,并在时间戳中增加 2 年

你必须使用 mktime。

例子

$timestamp = mktime(0, 0, 0, $month, $day, $year+2);`
于 2012-07-05T14:04:16.813 回答
1
$date    = "1998-08-14";

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

echo $newdate;

回声

2000-08-14
于 2013-12-06T11:30:11.887 回答