diff --git a/src/Jenssegers/Mongodb/Eloquent/Model.php b/src/Jenssegers/Mongodb/Eloquent/Model.php index 894ebe41a..d2baed730 100644 --- a/src/Jenssegers/Mongodb/Eloquent/Model.php +++ b/src/Jenssegers/Mongodb/Eloquent/Model.php @@ -84,7 +84,7 @@ public function fromDateTime($value) $value = parent::asDateTime($value); } - return new UTCDateTime($value->getTimestamp() * 1000); + return new UTCDateTime($value->format('Uv')); } /** @@ -94,7 +94,7 @@ protected function asDateTime($value) { // Convert UTCDateTime instances. if ($value instanceof UTCDateTime) { - return Carbon::createFromTimestamp($value->toDateTime()->getTimestamp()); + return Carbon::createFromTimestampMs($value->toDateTime()->format('Uv')); } return parent::asDateTime($value); @@ -113,7 +113,7 @@ public function getDateFormat() */ public function freshTimestamp() { - return new UTCDateTime(time() * 1000); + return new UTCDateTime(microtime(true) * 1000); } /** diff --git a/src/Jenssegers/Mongodb/Query/Builder.php b/src/Jenssegers/Mongodb/Query/Builder.php index c425f5165..78833fb69 100644 --- a/src/Jenssegers/Mongodb/Query/Builder.php +++ b/src/Jenssegers/Mongodb/Query/Builder.php @@ -924,18 +924,18 @@ protected function compileWheres() if (is_array($where['value'])) { array_walk_recursive($where['value'], function (&$item, $key) { if ($item instanceof DateTime) { - $item = new UTCDateTime($item->getTimestamp() * 1000); + $item = new UTCDateTime($item->format('Uv')); } }); } else { if ($where['value'] instanceof DateTime) { - $where['value'] = new UTCDateTime($where['value']->getTimestamp() * 1000); + $where['value'] = new UTCDateTime($where['value']->format('Uv')); } } } elseif (isset($where['values'])) { array_walk_recursive($where['values'], function (&$item, $key) { if ($item instanceof DateTime) { - $item = new UTCDateTime($item->getTimestamp() * 1000); + $item = new UTCDateTime($item->format('Uv')); } }); }