Browse Source

Fixed ArrayHelper::toArray for DateTime (#18880)

* Fixed ArrayHelper::toArray() for DateTime object

* Updated README.md for #18880 (Fixed ArrayHelper::toArray() for DateTime object)

Co-authored-by: Alexander Makarov <sam@rmcreative.ru>
tags/2.0.44
rhertogh 3 years ago committed by GitHub
parent
commit
59eb9a3395
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      framework/CHANGELOG.md
  2. 2
      framework/helpers/BaseArrayHelper.php
  3. 7
      tests/framework/helpers/ArrayHelperTest.php

1
framework/CHANGELOG.md

@ -15,6 +15,7 @@ Yii Framework 2 Change Log
- Bug #18845: Fix duplicating `id` in `MigrateController::addDefaultPrimaryKey()` (WinterSilence, samdark)
- Bug #17119: Fix `yii\caching\Cache::multiSet()` to use `yii\caching\Cache::$defaultDuration` when no duration is passed (OscarBarrett)
- Bug #18842: Fix `yii\base\Controller::bindInjectedParams()` to not throw error when argument of `ReflectionUnionType` type is passed (bizley)
- Bug #18880: Fix `yii\helpers\ArrayHelper::toArray()` for `DateTime` objects in PHP >= 7.4 (rhertogh)
2.0.43 August 09, 2021

2
framework/helpers/BaseArrayHelper.php

@ -70,6 +70,8 @@ class BaseArrayHelper
}
return $object;
} elseif ($object instanceof \DateTimeInterface) {
return (array)$object;
} elseif (is_object($object)) {
if (!empty($properties)) {
$className = get_class($object);

7
tests/framework/helpers/ArrayHelperTest.php

@ -114,6 +114,13 @@ class ArrayHelperTest extends TestCase
},
],
]));
// DateTime test
$this->assertEquals([
'date' => '2021-09-13 15:16:17.000000',
'timezone_type' => 3,
'timezone' => 'UTC',
], ArrayHelper::toArray(new \DateTime('2021-09-13 15:16:17', new \DateTimeZone('UTC'))));
}
public function testRemove()

Loading…
Cancel
Save