php日期差异计算添加额外的天数
尝试在 PHP 中显示两个日期之间的差异。
<?php
$date1 = new DateTime("2022-03-01");
$date2 = new DateTime("2022-04-01");
$interval = $date1->diff($date2);
echo $interval->days;
echo "difference " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days ";
?>
我得到的结果是:-
31差异0年1个月3天
$interval->days
结果是正确的,但为什么将 $interval->d
设置为 3,而它仅仅相差一个月?
Trying to display difference between two dates in PHP.
<?php
$date1 = new DateTime("2022-03-01");
$date2 = new DateTime("2022-04-01");
$interval = $date1->diff($date2);
echo $interval->days;
echo "difference " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days ";
?>
I am getting result as:-
31difference 0 years, 1 months, 3 days
$interval->days
result is correct, but why having $interval->d
as 3 when its just a month difference?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试下面
Try below
它看起来像一个错误,这取决于时区和时间。
使用 UTC 时区,就可以了:
对于欧洲/柏林时区的午夜,我们有 3 天的偏移量:
凌晨 01:00 还算可以:0 个月但 31 天
12:00 一切恢复正常:1 个月
It looks like a bug, that depends on the timezone and hour.
With UTC timezone, it is OK :
With Europe/Berlin timezone at midnight, we have the 3 days offset :
At 01:00 in the morning, it is kind of OK : 0 month but 31 days
At 12:00, everything is right again: 1 month