0

我试图让 php 计算一年零一天前的日期。我有这个:

$date = date(strtotime('-366 days'));
$oneyear_oneday = date("Y-m-d H:i:s", $date); 

$date = date(strtotime('-1 year'));
$oneyear = date("Y-m-d H:i:s", $date);

但是,由于它是闰年,$oneyear 和 $oneyear_oneday 都提供相同的输出。有谁知道我如何正确计算这个?

即如果是 2012 年 8 月 15 日下午 3 点,我希望输出是 2011 年 8 月 15 日下午 3 点

4

5 回答 5

3

使用 PHP5.3,

   $date = new DateTime();
   $interval = new DateInterval("P1Y");
   $newdate = $date->sub($interval);
于 2012-08-31T14:02:07.167 回答
0

您可以尝试使用mktime() ...

于 2012-08-31T13:59:05.703 回答
0

两种计算都是正确的。但是,如果您想获得相同的日期,但一年前,您应该简单地使用“-1 年”。字符串 '-366 days' 仅在闰年是正确的。

于 2012-08-31T14:00:15.557 回答
0
$date = strtotime('2010-01-01 -1 year');
echo date('Y-m-d', $date); 

输出流看起来像,

2009-01-01

转到此链接以获取更多参考

于 2012-08-31T14:03:38.340 回答
0

首先,减去一年。然后,从结果中减去一天:

$date = strtotime('-1 day', strtotime('-1 year'));
$oneyear_oneday = date("Y-m-d H:i:s", $date); 
于 2012-08-31T14:10:53.963 回答