Php 包括两个日期之间的差异

Php 包括两个日期之间的差异,php,Php,下面的代码给出了正确的答案 //$start_date = '1/1/2013' //$end_date = '1/7/2013' $diff_num = strtotime($end_date) - strtotime($start_date) + 1; $diff_days = ceil($diff_num + 86400) / 86400; 然而,在我看来,必须有比这更好的答案。我不喜欢增加一天来完全包括范围。我想包括范围内的所有天数,而不是中间的空格。 谢谢你的帮助 您可以这样使用对

下面的代码给出了正确的答案

//$start_date = '1/1/2013'
//$end_date = '1/7/2013'
$diff_num = strtotime($end_date) - strtotime($start_date) + 1; 
$diff_days = ceil($diff_num + 86400) / 86400;
然而,在我看来,必须有比这更好的答案。我不喜欢增加一天来完全包括范围。我想包括范围内的所有天数,而不是中间的空格。 谢谢你的帮助

您可以这样使用对象:

$datetime1 = new DateTime('2013-1-1');
$datetime2 = new DateTime('2013-7-1');
$interval = $datetime1->diff($datetime2);
$interval->add(new DateInterval('P1D')); // adds one day

但是,是的,你肯定要加上一天“手工”

你为什么不喜欢加1呢?本质上差异是不包含的。这是一个栅栏柱问题。。。增加额外的一天是完全合适的。从数学上讲,就是这样做的。这个解很好。PHP有很多函数,但不是所有函数都有。这是怎么回事?用秒计算日期之间的差异时要小心。总有可能包含跳跃秒,给你奇怪的结果。最好使用一个像样的日历库(PHP中的标准)。+1仍然会增加1,但会避免@BartFriederichs引用的闰秒问题。