【发布时间】:2019-07-12 12:52:34
【问题描述】:
我遇到了一个有趣的案例,与DateTime类的diff()方法有关。
如果我尝试计算两个日期之间的差异,例如
$datetime1 = new \DateTime('June 2019');
$datetime2 = new \DateTime('July 2019');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%m');
,结果我得到0。
为什么会这样?
Print_r 的:
$datetime1:
DateTime Object ( [date] => 2019-06-01 00:00:00.000000
[timezone_type] => 3 [timezone] => Europe/Berlin )
$datetime2:
DateTime Object ( [date] => 2019-07-01 00:00:00.000000
[timezone_type] => 3 [timezone] => Europe/Berlin )
$间隔:
DateInterval Object ( [y] => 0 [m] => 0 [d] => 30 [h] => 0 [i] => 0 [s] => 0 [f] => 0
[weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0
[invert] => 0 [days] => 30 [special_type] => 0 [special_amount] => 0
[have_weekday_relative] => 0 [have_special_relative] => 0 )
【问题讨论】:
-
奇怪,我得到
1 -
相差30天,所以只能算几个月。
-
@montie 我不知道,但如果有人有问题,而其他人没有,那就有问题了
-
如果你添加 3 行你会得到什么?
print_r($datetime1); print_r($datetime2); print_r($interval);请将结果作为额外数据添加到您的问题中 -
这已经回答了。请看这个stackoverflow.com/questions/40354442/…