Php DateTime::夏时制的差异和结束
上周末我们的DST结束了,时钟向后拨了1个小时。我发现DateTime::diff()有一个奇怪的行为,当比较日期在不同的时间:春季和冬季时Php DateTime::夏时制的差异和结束,php,datetime,dst,Php,Datetime,Dst,上周末我们的DST结束了,时钟向后拨了1个小时。我发现DateTime::diff()有一个奇怪的行为,当比较日期在不同的时间:春季和冬季时 new DateTime('2015-10-28 12:50:00')->diff(new DateTime('2015-10-19 13:20:00')) result = {DateInterval} [15] y = 0 m = 0 d = 9 h = -1 # negative hour! i =
new DateTime('2015-10-28 12:50:00')->diff(new DateTime('2015-10-19 13:20:00'))
result = {DateInterval} [15]
y = 0
m = 0
d = 9
h = -1 # negative hour!
i = 30
s = 0
当差值超过一小时时,一切正常:
new DateTime('2015-10-28 12:50:00')->diff(new DateTime('2015-10-19 14:20:00'))
result = {DateInterval} [15]
y = 0
m = 0
d = 8
h = 22
i = 30
s = 0
有没有办法解决这个问题?这是PHP中的错误吗?是的,这是一个错误,PHP目前不处理DST转换。错误报告(仍处于打开状态)和(在PHP5.3.9中修复)描述了您遇到的问题。最佳做法是使用UTC进行所有日期计算,这样可以避免此问题。请参阅此以了解更多详细信息