php:提前到明年减去1天

时间:2012-01-20 17:15:34

标签: php date

问题:我将来使用strtotime提前3​​64天,但是我在闰年时会遇到麻烦。

示例:今天是2012年1月20日 - 我需要PHP为我计算2013年1月19日的时间戳。

如果我只是添加

strtotime(“+ 364天”);

我正确地获得了2013年1月18日 - 但是对于我写的代码,我不需要考虑闰年,因此我希望获得2013年1月19日。

任何快速而肮脏的方法吗?

2 个答案:

答案 0 :(得分:3)

strtotime()将闰年考虑在内。

strtotime("+364 days");替换为strtotime('+1 year -1 day');

注意:并非所有人都想阅读一堆评论才能得到答案

答案 1 :(得分:0)

您还可以尝试检查年份是否跳跃,然后添加+/- 1天

<?php

function is_leap()
{
    $year = date('Y');
    $check = ((($year % 4) == 0) && ((($year % 100) != 0) || (($year %400) == 0)));
    return $check;
}

$year = (is_leap()) : strtotime("+365 days") ? strtotime("+364 days")

?>