Skip to content

Commit 795efbd

Browse files
committed
Remove BSON date conversion from DocumentModel
1 parent 053a893 commit 795efbd

File tree

2 files changed

+6
-23
lines changed

2 files changed

+6
-23
lines changed

src/Eloquent/DocumentModel.php

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@
55
namespace MongoDB\Laravel\Eloquent;
66

77
use BackedEnum;
8-
use Carbon\Carbon;
98
use Carbon\CarbonInterface;
109
use DateTimeInterface;
11-
use DateTimeZone;
1210
use Illuminate\Contracts\Queue\QueueableCollection;
1311
use Illuminate\Contracts\Queue\QueueableEntity;
1412
use Illuminate\Contracts\Support\Arrayable;
@@ -35,7 +33,6 @@
3533
use function array_values;
3634
use function class_basename;
3735
use function count;
38-
use function date_default_timezone_get;
3936
use function explode;
4037
use function func_get_args;
4138
use function in_array;
@@ -121,24 +118,6 @@ public function fromDateTime($value): UTCDateTime
121118
return new UTCDateTime($value);
122119
}
123120

124-
/**
125-
* Return a timestamp as DateTime object.
126-
*
127-
* @see HasAttributes::asDateTime()
128-
*
129-
* @param mixed $value
130-
*/
131-
protected function asDateTime($value): Carbon
132-
{
133-
// Convert UTCDateTime instances to Carbon.
134-
if ($value instanceof UTCDateTime) {
135-
return Date::instance($value->toDateTime())
136-
->setTimezone(new DateTimeZone(date_default_timezone_get()));
137-
}
138-
139-
return parent::asDateTime($value);
140-
}
141-
142121
/** @inheritdoc */
143122
public function getDateFormat()
144123
{

src/Query/Builder.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Carbon\CarbonPeriod;
1010
use Closure;
1111
use DateTimeInterface;
12+
use DateTimeZone;
1213
use Illuminate\Database\Query\Builder as BaseBuilder;
1314
use Illuminate\Database\Query\Expression;
1415
use Illuminate\Support\Arr;
@@ -40,6 +41,7 @@
4041
use function call_user_func_array;
4142
use function count;
4243
use function ctype_xdigit;
44+
use function date_default_timezone_get;
4345
use function dd;
4446
use function dump;
4547
use function end;
@@ -1662,7 +1664,8 @@ private function aliasIdForResult(array|object $values): array|object
16621664

16631665
foreach ($values as $key => $value) {
16641666
if ($value instanceof UTCDateTime) {
1665-
$values[$key] = Date::instance($value->toDateTime());
1667+
$values[$key] = Date::instance($value->toDateTime())
1668+
->setTimezone(new DateTimeZone(date_default_timezone_get()));
16661669
} elseif (is_array($value) || $value instanceof stdClass) {
16671670
$values[$key] = $this->aliasIdForResult($value);
16681671
}
@@ -1677,7 +1680,8 @@ private function aliasIdForResult(array|object $values): array|object
16771680

16781681
foreach (get_object_vars($values) as $key => $value) {
16791682
if ($value instanceof UTCDateTime) {
1680-
$values->{$key} = Date::instance($value->toDateTime());
1683+
$values->{$key} = Date::instance($value->toDateTime())
1684+
->setTimezone(new DateTimeZone(date_default_timezone_get()));
16811685
} elseif (is_array($value) || $value instanceof stdClass) {
16821686
$values->{$key} = $this->aliasIdForResult($value);
16831687
}

0 commit comments

Comments
 (0)