有没有办法计算当前日期和特定月份之间的天数?
例如,如果当前日期是2011年3月25日,我希望PHP计算从现在到2010年9月5日之间的天数。
是否有可用的功能?
修改
另外,我希望这一年充满活力(所以我不必定义它) - 所以如果现在的日期是2010年9月20日,它知道计算在同一年 - 而如果它是在2009年1月7日它知道它需要计算2009年1月7日至2008年9月5日之间的天数。
答案 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天。”