DateTime::modify('-1 second') goes 59 minutes later on DST
オープン
まだ誰も着手していません。
Bug
Extension: date
Status: Verified
- 主要言語
- C
- スター
- 40.4k
- フォーク
- 8.2k
- 平均マージ
- 2日 13時間
- マージ済み PR(30日)
- 96
説明
Description
The following code:
<?php
echo (new DateTime('2025-03-30 00:59:59', new DateTimeZone('Europe/London')))
->modify('+1 second')
->modify('-1 second')
->format('Y-m-d H:i:s.u e T');
Resulted in this output:
2025-03-30 02:59:59.000000 Europe/London BST
But I expected this output instead:
2025-03-30 00:59:59.000000 Europe/London GMT
Which is also the output we get when executing (since PHP 8.1, before that add/sub interval and modify gave the same output):
echo (new DateTime('2025-03-30 00:59:59', new DateTimeZone('Europe/London')))
->add(new DateInterval('PT1S'))
->sub(new DateInterval('PT1S'))
->format('Y-m-d H:i:s.u e T');
PHP Version
PHP 8.5.3
Possibly related to
#15880
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
評価
この issue はまだ評価されていません。