Skip to content

Commit 2f92654

Browse files
committed
Fix issue parsing millisecond-precision dates before 1970.
1 parent 90f73d2 commit 2f92654

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/Jenssegers/Mongodb/Eloquent/Model.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,13 @@ protected function asDateTime($value)
9999
{
100100
// Convert UTCDateTime instances.
101101
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);
103109
}
104110

105111
return parent::asDateTime($value);

0 commit comments

Comments
 (0)