重複の可能性:
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 時間かかります。したがって、どうやら正しい答えは明らかではありません:)