In Magento 2 you need to create a module.
app/code/Vendorname/Mage2rewrite/etc/module.xml
<?xml version="1.0" ?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Vendorname_Mage2rewrite" setup_version="1.0.0"/> </config>
app/code/Vendorname/Mage2rewrite/composer.json
{ "name": "vendorname/module-mage2rewrite", "description": "N/A", "require": { "php": "~7.0.13|~7.1.0", "magento/module-config": "101.0.*", "magento/module-store": "100.2.*", "magento/module-backend": "100.2.*", "magento/framework": "101.0.*" }, "type": "magento2-module", "version": "100.0.2", "license": [ "OSL-3.0", "AFL-3.0" ], "autoload": { "files": [ "registration.php" ], "psr-4": { "Vendorname\\Mage2rewrite\\": "" } } }
app/code/Vendorname/Mage2rewrite/registration.php
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Vendorname_Mage2rewrite', __DIR__ );
app/code/Vendorname/Mage2rewrite/etc/di.xml
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/e†c/config.xsd"> <!-- Overriding Timezone.php using preference method --> <preference for="Magento\Framework\Stdlib\DateTime\Timezone" type="Vendorname\Mage2rewrite\Stdlib\DateTime\Timezone"/> <!-- Overriding TimezoneTest.php using preference method --> <preference for="Magento\Framework\Stdlib\Test\Unit\DateTime\TimezoneTest" type="Vendorname\Mage2rewrite\Stdlib\Test\Unit\DateTime\TimezoneTest"/> </config>
app/code/Vendorname/Mage2rewrite/Stdlib/DateTime/Timezone.php
<?php namespace Vendorname\Mage2rewrite\Stdlib\DateTime; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\App\ScopeInterface; use Magento\Framework\App\ScopeResolverInterface; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Locale\ResolverInterface; use Magento\Framework\Phrase; /** * Message model factory */ class Timezone extends \Magento\Framework\Stdlib\DateTime\Timezone { public function scopeDate($scope = null, $date = null, $includeTime = false) { $timezone = new \DateTimeZone( $this->_scopeConfig->getValue($this->getDefaultTimezonePath(), $this->_scopeType, $scope) ); switch (true) { case (empty($date)): $date = new \DateTime('now', $timezone); break; case ($date instanceof \DateTime): case ($date instanceof \DateTimeImmutable): $date = $date->setTimezone($timezone); break; default: $date = new \DateTime(is_numeric($date) ? '@' . $date : $date); $date->setTimezone($timezone); break; } if (!$includeTime) { $date->setTime(0, 0, 0); } return $date; } }
app/code/Vendorname/Mage2rewrite/Stdlib/Test/Unit/DateTime/TimezoneTest.php
<?php namespace Vendorname\Mage2rewrite\Stdlib\Test\Unit\DateTime; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\App\ScopeResolverInterface; use Magento\Framework\Locale\ResolverInterface; use Magento\Framework\Stdlib\DateTime; use Magento\Framework\Stdlib\DateTime\Timezone; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; /** * Message model factory */ class TimezoneTest extends \Magento\Framework\Stdlib\Test\Unit\DateTime\TimezoneTest { /** * @return array */ public function scopeDateDataProvider(): array { $utcTz = new \DateTimeZone('UTC'); return [ ['2018-10-20 00:00:00', 'UTC', 'en_US', '2018-10-20 00:00:00'], ['2018-10-20 00:00:00', 'America/Los_Angeles', 'en_US', '2018-10-19 17:00:00'], ['2018-10-20 00:00:00', 'Asia/Qatar', 'en_US', '2018-10-20 03:00:00'], ['2018-10-20 00:00:00', 'America/Los_Angeles', 'en_GB', '2018-10-19 17:00:00'], ['10/20/18 00:00', 'UTC', 'en_US', '2018-10-20 00:00:00'], ['10/20/18 00:00', 'America/Los_Angeles', 'en_US', '2018-10-19 17:00:00'], ['10/20/18 00:00', 'Asia/Qatar', 'en_US', '2018-10-20 03:00:00'], ['10/20/18 00:00', 'UTC', 'fr_FR', '2018-10-20 00:00:00'], ['10/20/18 00:00', 'America/Los_Angeles', 'fr_FR', '2018-10-19 17:00:00'], ['10/20/18 00:00', 'Asia/Qatar', 'fr_FR', '2018-10-20 03:00:00'], [1539993600, 'UTC', 'en_US', '2018-10-20 00:00:00'], [1539993600, 'America/Los_Angeles', 'en_US', '2018-10-19 17:00:00'], [1539993600, 'Asia/Qatar', 'en_US', '2018-10-20 03:00:00'], [new \DateTime('2018-10-20', $utcTz), 'UTC', 'en_US', '2018-10-20 00:00:00'], [new \DateTime('2018-10-20', $utcTz), 'America/Los_Angeles', 'en_US', '2018-10-19 17:00:00'], [new \DateTime('2018-10-20', $utcTz), 'Asia/Qatar', 'en_US', '2018-10-20 03:00:00'], [new \DateTimeImmutable('2018-10-20', $utcTz), 'UTC', 'en_US', '2018-10-20 00:00:00'], [new \DateTimeImmutable('2018-10-20', $utcTz), 'America/Los_Angeles', 'en_US', '2018-10-19 17:00:00'], [new \DateTimeImmutable('2018-10-20', $utcTz), 'Asia/Qatar', 'en_US', '2018-10-20 03:00:00'], ]; } }
0 Comments