我正在尝试解决php DateTime巫婆的问题,在某些特定情况下,我会返回奇怪的值。
例如,我的代码:
$start = new \DateTime("2018-10-04 00:00");
$end = new \DateTime("2018-10-28 23:59");
$diff = $end->diff($start);
返回:
DateInterval {#2311 ▼
+"y": 0
+"m": 0
+"d": 25
+"h": -1
+"i": 59
+"s": 59
+"f": 0.0
+"weekday": 0
+"weekday_behavior": 0
+"first_last_day_of": 0
+"invert": 1
+"days": 24
+"special_type": 0
+"special_amount": 0
+"have_weekday_relative": 0
+"have_special_relative": 0
}
“ 25天 -1小时 59分钟”。
该功能在大多数情况下均可完美运行。这种情况仅在某些时候发生,但仍然是一个问题...有什么方法可以获取正常的天/小时格式,而无需每次都重新计算此怪异值?
答案 0 :(得分:0)
感谢阿尔瓦罗,我找到了解决方案:
$start = new \DateTime("2018-10-04 00:00", new \DateTimeZone('UTC'));
$end = new \DateTime("2018-10-28 23:59", new \DateTimeZone('UTC'));
$diff = $end->diff($start);
问题可能出在上述期间我的欧洲/华沙时区和CEST / CET时移。