PHP date_diff 函数 returns 错误结果
PHP date_diff function returns wrong result
我试图使用 PHP 中的 date_diff()
查找两个日期之间的月数。众所周知2019-03-01和2020-01-31之间的月数是11个月,但是下面的代码return10个月
$date1=date_create("2019-03-01");
$date2=date_create("2020-01-31");
$diff=date_diff($date1,$date2);
echo $diff->format("%m months");
输出
10 months
为什么这个代码 return 少了 1 个月?
相差10个月30天,也就是date_diff()
returns:
object(DateInterval)#3 (16) {
["y"]=>
int(0)
["m"]=>
int(10)
["d"]=>
int(30)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["f"]=>
float(0)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(0)
["days"]=>
int(336)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)
}
@showdev 上面评论的预计到达时间。
如果您需要从第一天的开始到最后一天的午夜结束之间的月份差异,您还可以将结束日期设置为午夜(24 小时!)或添加一天。
<?php
$dateStart = date_create("2019-03-01");
$dateEnd = date_create("2020-01-31");
//set Time to midnight or add a day
$dateEnd->setTime(24,0,0);
$diff = date_diff($dateStart,$dateEnd);
echo $diff->format("%m months");
//11 months
我试图使用 PHP 中的 date_diff()
查找两个日期之间的月数。众所周知2019-03-01和2020-01-31之间的月数是11个月,但是下面的代码return10个月
$date1=date_create("2019-03-01");
$date2=date_create("2020-01-31");
$diff=date_diff($date1,$date2);
echo $diff->format("%m months");
输出
10 months
为什么这个代码 return 少了 1 个月?
相差10个月30天,也就是date_diff()
returns:
object(DateInterval)#3 (16) {
["y"]=>
int(0)
["m"]=>
int(10)
["d"]=>
int(30)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["f"]=>
float(0)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(0)
["days"]=>
int(336)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)
}
@showdev 上面评论的预计到达时间。
如果您需要从第一天的开始到最后一天的午夜结束之间的月份差异,您还可以将结束日期设置为午夜(24 小时!)或添加一天。
<?php
$dateStart = date_create("2019-03-01");
$dateEnd = date_create("2020-01-31");
//set Time to midnight or add a day
$dateEnd->setTime(24,0,0);
$diff = date_diff($dateStart,$dateEnd);
echo $diff->format("%m months");
//11 months