如何解决与 PHP 中的 DataTime diff 函数不一致
在 PHP 的 diff
类中使用 DateTime
函数时,我注意到一些奇怪的不一致。
以下所有间隔都应小于一个月,因为它们正好比一个月少 1 秒,但是,最后两个不是:
date_default_timezone_set('Australia/Sydney');
$date_diff = (new DateTime('2021-01-01 00:00:00'))->diff(new DateTime('2021-01-31 23:59:59'));
echo $date_diff->format('%y Year %m Month %d Day')."\n"; // 0 Year 0 Month 30 Day (expected)
$date_diff = (new DateTime('2021-02-01 00:00:00'))->diff(new DateTime('2021-02-28 23:59:59'));
echo $date_diff->format('%y Year %m Month %d Day')."\n"; // 0 Year 0 Month 27 Day (expected)
$date_diff = (new DateTime('2021-03-01 00:00:00'))->diff(new DateTime('2021-03-31 23:59:59'));
echo $date_diff->format('%y Year %m Month %d Day')."\n"; // 0 Year 1 Month 2 Day (???)
$date_diff = (new DateTime('2021-10-01 00:00:00'))->diff(new DateTime('2021-10-31 23:59:59'));
echo $date_diff->format('%y Year %m Month %d Day')."\n"; // 0 Year 1 Month 0 Day (???)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。