From 28bb6af2817afe8864aed02024899615987eec57 Mon Sep 17 00:00:00 2001 From: Josh Marshall Date: Fri, 3 Apr 2026 14:40:16 +1000 Subject: [PATCH] Demonstrate addMinutes() across DST transition adds an hour --- .../DateTime/DaylightSavingsAddTest.php | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/TestCase/DateTime/DaylightSavingsAddTest.php diff --git a/tests/TestCase/DateTime/DaylightSavingsAddTest.php b/tests/TestCase/DateTime/DaylightSavingsAddTest.php new file mode 100644 index 0000000..15bbe82 --- /dev/null +++ b/tests/TestCase/DateTime/DaylightSavingsAddTest.php @@ -0,0 +1,36 @@ + + * @link https://cakephp.org CakePHP(tm) Project + * @license https://www.opensource.org/licenses/mit-license.php MIT License + */ + +namespace Cake\Chronos\Test\TestCase\DateTime; + +use Cake\Chronos\Chronos; +use Cake\Chronos\Test\TestCase\TestCase; + +class DaylightSavingsAddTest extends TestCase +{ + public function testDayLightSavingsTransition(): void + { + // Australia/Melbourne changes out of daylight savings 5th April 2026 + $time = Chronos::parse('2026-04-05 09:00:00', 'Australia/Melbourne'); + + $this->assertSame('2026-04-05T09:00:00+10:00', $time->toIso8601String()); + $this->assertSame('2026-04-05T00:00:00+11:00', $time->startOfDay()->toIso8601String()); + + $this->assertSame(600, $time->diffInMinutes($time->startOfDay())); + + $this->assertSame('2026-04-05T09:00:00+10:00', $time->startOfDay()->addMinutes(600)->toIso8601String()); + } +}