php strtotime +7天问题

时间:2013-12-22 10:56:51

标签: php datetime strtotime

我尝试使用以下代码计算一周:

    $lastSun = strtotime('last Sunday');

    WriteLine("Last Sunday: ".date('Y.m.d',$lastSun));
    WriteLine(date('d.m.Y',$lastSun).' +1 days= '.date('d.m.Y',strtotime("+1 days last Sunday")));
    WriteLine(date('d.m.Y',$lastSun).' +2 days= '.date('d.m.Y',strtotime("+2 days last Sunday")));
    WriteLine(date('d.m.Y',$lastSun).' +3 days= '.date('d.m.Y',strtotime("+3 days last Sunday")));
    WriteLine(date('d.m.Y',$lastSun).' +4 days= '.date('d.m.Y',strtotime("+4 days last Sunday")));
    WriteLine(date('d.m.Y',$lastSun).' +5 days= '.date('d.m.Y',strtotime("+5 days last Sunday")));
    WriteLine(date('d.m.Y',$lastSun).' +6 days= '.date('d.m.Y',strtotime("+6 days last Sunday")));
    WriteLine(date('d.m.Y',$lastSun).' +7 days= '.date('d.m.Y',strtotime("+7 days last Sunday")));

但是,如果在基准日期增加7天,我会有一个令人惊讶的结果:

Last Sunday: 2013.12.16

16.12.2013 +1 days= 16.12.2013
16.12.2013 +2 days= 17.12.2013
16.12.2013 +3 days= 18.12.2013
16.12.2013 +4 days= 19.12.2013
16.12.2013 +5 days= 20.12.2013
16.12.2013 +6 days= 21.12.2013
16.12.2013 +7 days= 29.12.2013

我也用硬编码日期而不是'最后一个星期日'尝试了它,但结果仍然相同,增加了14天而不是7天。 那么我错过了什么或使用strtotime()函数做了什么?

2 个答案:

答案 0 :(得分:3)

试试这个,

$sunday=strtotime("last Sunday");
$date = strtotime("+7 day", $sunday);

答案 1 :(得分:1)

你可以给strtotime一个参数来计算给定的字符串。

strtotime("+7 days", $lastSun)