PHP 8.1 DateTime Diff跨时区计算返回错误结果
跨时区日期差计算出现负数年份问题(PHP 8.1.10及以上版本)
我在计算两个日期的年份差时遇到异常:当其中一个日期为UTC时区,另一个为欧洲/柏林时区时,得到的年份值为负数(示例中得到-30,正确结果应为+29)。该问题仅在PHP 8.1.10及以上版本中出现,有没有人遇到过相同问题?
$startDate = new \DateTimeImmutable('1993-06-05 00:00:00', new \DateTimeZone('UTC')); $endDate = new \DateTimeImmutable('2023-01-02 00:00:00', new \DateTimeZone('Europe/Berlin')); var_dump($startDate->diff($endDate));
执行结果:
object(DateInterval)#3 (16) { ["y"]=> int(-30) }
内容的提问来源于stack exchange,提问作者marcodl
相关产品推荐
相关产品推荐

