ここでは2つの効果が見られます。1つ目は、複数の形式で記述できる日付の記述方法を使用することです。
0000-01-01 same as 0000-01-01
0000-01-00 same as -0001-12-31
0000-00-01 same as -0001-12-01
0000-00-00 same as -0001-11-30
したがって、日付自体によって、11月30日-1をすでに指定しています。
これで、残りの時間オフセットが約9分21秒異なります。これは、1911年3月10日23:51:38/39現地時間に発生したパリ/フランスのUTCと比較した時計の変更によるものです。
コード例を少し変更し、ヨーロッパ/パリの設定を導入しました。これは役割を果たしています。Z
このコードは、探しているものであるUTC()からの秒単位のオフセットも示しています。
$dt = new DateTime('0000-00-00 00:00:00', new DateTimeZone('Europe/Paris'));
printf("%s secs offset from UTC\n", $dt->format('r T (e) Z'));
日付を少し変更しました
Fri, 10 Mar 1911 23:51:38 +0009 PMT (Europe/Paris) 561 secs offset from UTC
^^^
1秒後:
Fri, 10 Mar 1911 23:51:39 +0000 WET (Europe/Paris) 0 secs offset from UTC
現地標準時が1911年3月11日土曜日に到達しようとしたとき、00:01:00の時計は、代わりに現地標準時の1911年3月10日金曜日の0:09:21時間に戻されました。
それは561秒です。参考:パリの時計の変更-1911年の時刻変更日と1900年から1924年までのタイムゾーンの変更と夏時間の開始/終了日。