In Magento 2 you need to create a module.
app/code/Vendorname/Mage2rewrite/etc/module.xml
1 2 3 4 | <? 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | { "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
1 2 3 4 5 6 | <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Vendorname_Mage2rewrite' , __DIR__ ); |
app/code/Vendorname/Mage2rewrite/etc/di.xml
1 2 3 4 5 6 7 8 9 | <? 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <?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