可能重复:
您如何处理 PHP 中的时区差异计算?
在昨天对瑞典 DST 的更改中,我遇到了一些我编写的代码的问题。我正在使用 PHP DateTime、DateTimeZone、DateTimePeriod 等,但不同意结果。
您对这些日期之间的天数和小时数有何看法?
"Sun, 28 Oct 2012 01:00:00 +0200"
"Mon, 29 Oct 2012 00:00:00 +0100"
PHP告诉我这是0天23小时。我会说它是 0 天,但 24 小时。
更新:时区是“欧洲/斯德哥尔摩”,所以两个日期都是一样的。
重现:
$timezone = new DateTimeZone("Europe/Stockholm");
$date1 = new DateTime("Sun, 28 Oct 2012 01:00:00", $timezone);
$date2 = new DateTime("Mon, 29 Oct 2012 00:00:00", $timezone);
$date1->setTimezone($timezone);
$date2->setTimezone($timezone);
$diff = $date1->diff($date2);
var_dump($diff);
更新 2:
使用 Java 和 JodaTime 类,它给了我 24 小时。所以显然正确的答案并不明显:)