从现在到特定月份的PHP天数

时间:2011-12-12 00:29:00

标签: php date time count diff

  

可能重复:
  Calculate number of days between two given dates

有没有办法计算当前日期和特定月份之间的天数?

例如,如果当前日期是2011年3月25日,我希望PHP计算从现在到2010年9月5日之间的天数。

是否有可用的功能?

修改

另外,我希望这一年充满活力(所以我不必定义它) - 所以如果现在的日期是2010年9月20日,它知道计算在同一年 - 而如果它是在2009年1月7日它知道它需要计算2009年1月7日至2008年9月5日之间的天数。

1 个答案:

答案 0 :(得分:0)

您的修改使问题更有趣:如何查找自9月5日以来最近的天数。以下是众多方法之一:

$input=$argv[1];    //"now" for now.

$base=strtotime($input);

$t=strtotime("September 5");    //Defaults to current year

while(true){
    echo "t=".date("Y-m-d",$t)."\n";
    $diff=$base-$t;
    if($diff>=0)break;
    //If diff is -ve, $t is still in future, so go back one year
    $t=strtotime("-1 year",$t);
    }

echo "Sep 5th is ".floor($diff/86400)." days before $input.\n";

这是一个命令行脚本,所以你可以这样测试:php test.php now给出“9月5日是98天之前”。虽然php test.php 2000-01-01给出“9月5日是2000-01-01之前的118天”。 它不支持将来的日期:php test.php 2020-12-31给出“9月5日是2020-12-31之前的3405天。”