|
31 | 31 | use function abs;
|
32 | 32 | use function array_keys;
|
33 | 33 | use function array_merge;
|
| 34 | +use function date_default_timezone_set; |
34 | 35 | use function get_debug_type;
|
35 | 36 | use function hex2bin;
|
36 | 37 | use function sleep;
|
37 | 38 | use function sort;
|
38 | 39 | use function strlen;
|
39 | 40 | use function time;
|
40 | 41 |
|
| 42 | +use const DATE_ATOM; |
| 43 | + |
41 | 44 | class ModelTest extends TestCase
|
42 | 45 | {
|
43 | 46 | public function tearDown(): void
|
@@ -670,6 +673,33 @@ public function testUnsetDotAttributesAndSet(): void
|
670 | 673 | $this->assertSame(['note2' => 'DEF', 'note1' => 'ABC'], $user->notes);
|
671 | 674 | }
|
672 | 675 |
|
| 676 | + public function testDateUseLocalTimeZone(): void |
| 677 | + { |
| 678 | + // The default timezone is reset to UTC before every test in OrchestraTestCase |
| 679 | + $tz = 'Australia/Sydney'; |
| 680 | + date_default_timezone_set($tz); |
| 681 | + |
| 682 | + $date = new DateTime('1965/03/02 15:30:10'); |
| 683 | + $user = User::create(['birthday' => $date]); |
| 684 | + $this->assertInstanceOf(Carbon::class, $user->birthday); |
| 685 | + $this->assertEquals($tz, $user->birthday->getTimezone()->getName()); |
| 686 | + $user->save(); |
| 687 | + |
| 688 | + $user = User::find($user->_id); |
| 689 | + $this->assertEquals($date, $user->birthday); |
| 690 | + $this->assertEquals($tz, $user->birthday->getTimezone()->getName()); |
| 691 | + $this->assertSame('1965-03-02T15:30:10+10:00', $user->birthday->format(DATE_ATOM)); |
| 692 | + |
| 693 | + $tz = 'America/New_York'; |
| 694 | + date_default_timezone_set($tz); |
| 695 | + $user = User::find($user->_id); |
| 696 | + $this->assertEquals($date, $user->birthday); |
| 697 | + $this->assertEquals($tz, $user->birthday->getTimezone()->getName()); |
| 698 | + $this->assertSame('1965-03-02T00:30:10-05:00', $user->birthday->format(DATE_ATOM)); |
| 699 | + |
| 700 | + date_default_timezone_set('UTC'); |
| 701 | + } |
| 702 | + |
673 | 703 | public function testDates(): void
|
674 | 704 | {
|
675 | 705 | $user = User::create(['name' => 'John Doe', 'birthday' => new DateTime('1965/1/1')]);
|
|
0 commit comments