bug80664.phpt 1.0 KB

12345678910111213141516171819202122232425262728
  1. --TEST--
  2. Bug #80664 (DateTime objects behave incorrectly around DST transition)
  3. --FILE--
  4. <?php
  5. $dt = new DateTime('@1604215800');
  6. $dt->setTimezone(new DateTimeZone('America/Boise'));
  7. echo "{$dt->format('Y-m-d H:i:s T')} | {$dt->getTimestamp()}\n";
  8. $dt->add(new DateInterval('PT1H'));
  9. echo "{$dt->format('Y-m-d H:i:s T')} | {$dt->getTimestamp()}\n";
  10. $dt->add(new DateInterval('PT1H'));
  11. echo "{$dt->format('Y-m-d H:i:s T')} | {$dt->getTimestamp()}\n";
  12. $dt->add(new DateInterval('PT1M'));
  13. echo "{$dt->format('Y-m-d H:i:s T')} | {$dt->getTimestamp()}\n\n";
  14. $dt = new DateTime('@1604219400');
  15. $dt->setTimezone(new DateTimeZone('UTC'));
  16. echo "{$dt->format('Y-m-d H:i:s T')} | {$dt->getTimestamp()}\r\n";
  17. $dt->setTimezone(new DateTimeZone('America/Boise'));
  18. echo "{$dt->format('Y-m-d H:i:s T')} | {$dt->getTimestamp()}\r\n";
  19. ?>
  20. --EXPECT--
  21. 2020-11-01 01:30:00 MDT | 1604215800
  22. 2020-11-01 01:30:00 MST | 1604219400
  23. 2020-11-01 02:30:00 MST | 1604223000
  24. 2020-11-01 02:31:00 MST | 1604223060
  25. 2020-11-01 08:30:00 UTC | 1604219400
  26. 2020-11-01 01:30:00 MST | 1604219400