new DateTime ('2009-09-30 12: 00: 00 + 0400');
class CustomDateTime extends DateTime { public function setTimezone ($ dtz) { if (! preg_match ('/ ^ [0-9 \ + \ -] /', $ dtz-> getName ())) { return parent :: setTimezone ($ dtz); } $ offset = $ dtz-> getOffset ($ this) - $ this-> getTimezone () -> getOffset ($ this); $ this-> modify ($ offset. 'second'); $ format = $ this-> format ('Ymd H: i: s'). $ dtz-> getName (); $ this -> __ construct ($ format); } }
public function testApplyUnnamedTimezoneToOtherDateTime () { $ dt1 = new CustomDateTime ('2009-09-30T12: 00: 00-02: 00'); $ dt2 = new CustomDateTime ('2009-09-30T12: 00: 00 + 02: 00'); $ dt2-> setTimezone ($ dt1-> getTimezone ()); $ this-> assertEquals ('2009-09-30T08: 00: 00-02: 00', $ dt2-> format ('c')); }
Source: https://habr.com/ru/post/71076/
All Articles