Unverified Commit 44825e79 authored by Giacomo Fabbian's avatar Giacomo Fabbian Committed by GitHub

Merge branch 'master' into add_test_for_negative_dates

parents eeb6f266 736415ef
......@@ -99,7 +99,13 @@ abstract class Model extends BaseModel
{
// Convert UTCDateTime instances.
if ($value instanceof UTCDateTime) {
return Date::createFromTimestampMs($value->toDateTime()->format('Uv'));
$date = $value->toDateTime();
$seconds = $date->format('U');
$milliseconds = abs($date->format('v'));
$timestampMs = sprintf('%d%03d', $seconds, $milliseconds);
return Date::createFromTimestampMs($timestampMs);
}
return parent::asDateTime($value);
......
......@@ -424,9 +424,16 @@ class ModelTest extends TestCase
$user = User::create(['name' => 'Jane Doe', 'birthday' => '2005-08-08']);
$this->assertInstanceOf(Carbon::class, $user->birthday);
// test negative dates
$user = User::create(['name' => 'Jane Doe', 'birthday' => '1965-08-08']);
// test millisecond-precision dates after 1970:
$user = User::create(['name' => 'Jane Doe', 'birthday' => new DateTime('2010-08-08 04.08.37.324')]);
$this->assertInstanceOf(Carbon::class, $user->birthday);
// test millisecond-precision dates before 1970:
$user = User::create(['name' => 'Jane Doe', 'birthday' => new DateTime('1965-08-08 04.08.37.324')]);
$this->assertInstanceOf(Carbon::class, $user->birthday);
$user = User::create(['name' => 'Jane Doe', 'entry' => ['date' => '2005-08-08']]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment