php / php/php-src

DateTime::modify('-1 second') goes 59 minutes later on DST

Aperta
#21,616 3 commenti 0 reazioni 1 assegnatario Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug Extension: date Status: Verified
Lingua principale
C
Stelle
40.4k
Fork
8.1k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.