File tree Expand file tree Collapse file tree 2 files changed +15
-2
lines changed
src/Jenssegers/Mongodb/Eloquent Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -99,7 +99,13 @@ protected function asDateTime($value)
99
99
{
100
100
// Convert UTCDateTime instances.
101
101
if ($ value instanceof UTCDateTime) {
102
- return Date::createFromTimestampMs ($ value ->toDateTime ()->format ('Uv ' ));
102
+ $ date = $ value ->toDateTime ();
103
+
104
+ $ seconds = $ date ->format ('U ' );
105
+ $ milliseconds = abs ($ date ->format ('v ' ));
106
+ $ timestampMs = sprintf ('%d%03d ' , $ seconds , $ milliseconds );
107
+
108
+ return Date::createFromTimestampMs ($ timestampMs );
103
109
}
104
110
105
111
return parent ::asDateTime ($ value );
Original file line number Diff line number Diff line change @@ -424,9 +424,16 @@ public function testDates(): void
424
424
425
425
$ user = User::create (['name ' => 'Jane Doe ' , 'birthday ' => '2005-08-08 ' ]);
426
426
$ this ->assertInstanceOf (Carbon::class, $ user ->birthday );
427
-
428
427
// test negative dates
429
428
$ user = User::create (['name ' => 'Jane Doe ' , 'birthday ' => '1965-08-08 ' ]);
429
+
430
+ // test millisecond-precision dates after 1970:
431
+ $ user = User::create (['name ' => 'Jane Doe ' , 'birthday ' => new DateTime ('2010-08-08 04.08.37.324 ' )]);
432
+ $ this ->assertInstanceOf (Carbon::class, $ user ->birthday );
433
+
434
+ // test millisecond-precision dates before 1970:
435
+ $ user = User::create (['name ' => 'Jane Doe ' , 'birthday ' => new DateTime ('1965-08-08 04.08.37.324 ' )]);
436
+
430
437
$ this ->assertInstanceOf (Carbon::class, $ user ->birthday );
431
438
432
439
$ user = User::create (['name ' => 'Jane Doe ' , 'entry ' => ['date ' => '2005-08-08 ' ]]);
You can’t perform that action at this time.
0 commit comments