From dad664e3b6a7d6437557a5046a019de290066008 Mon Sep 17 00:00:00 2001 From: Steve Axtmann Date: Thu, 7 Jun 2018 15:14:35 +0200 Subject: [PATCH 1/2] added handling for milliseconds in UTCDateTime when getting/querying --- src/Jenssegers/Mongodb/Eloquent/Model.php | 4 ++-- src/Jenssegers/Mongodb/Query/Builder.php | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Jenssegers/Mongodb/Eloquent/Model.php b/src/Jenssegers/Mongodb/Eloquent/Model.php index 894ebe41a..cf62c1f1d 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); 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')); } }); } From 060943ed16f4bd196f1a26839e50aff01384e3ea Mon Sep 17 00:00:00 2001 From: Steve Axtmann Date: Fri, 8 Jun 2018 09:59:46 +0200 Subject: [PATCH 2/2] created_at and updated_at now have millisecond precision --- src/Jenssegers/Mongodb/Eloquent/Model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Jenssegers/Mongodb/Eloquent/Model.php b/src/Jenssegers/Mongodb/Eloquent/Model.php index cf62c1f1d..d2baed730 100644 --- a/src/Jenssegers/Mongodb/Eloquent/Model.php +++ b/src/Jenssegers/Mongodb/Eloquent/Model.php @@ -113,7 +113,7 @@ public function getDateFormat() */ public function freshTimestamp() { - return new UTCDateTime(time() * 1000); + return new UTCDateTime(microtime(true) * 1000); } /**