zend-framework – Zend_Date:DST更改日的错误结果
发布时间:2020-12-13 22:34:13 所属栏目:PHP教程 来源:网络整理
导读:“2012年3月25日”是捷克共和国时间从凌晨02:00到凌晨03:00的时间.在那一天,我网站上的一个功能停止正常工作,客户抱怨等等.经过几个小时的挖掘,我发现当天Zend_Date表现得很奇怪: #!/usr/bin/env php?phpinclude 'Zend/Date.php';date_default_timezone_set
“2012年3月25日”是捷克共和国时间从凌晨02:00到凌晨03:00的时间.在那一天,我网站上的一个功能停止正常工作,客户抱怨等等.经过几个小时的挖掘,我发现当天Zend_Date表现得很奇怪:
#!/usr/bin/env php <?php include 'Zend/Date.php'; date_default_timezone_set('Europe/Prague'); shell_exec('sudo date --set="25 Mar 2012 12:00:00"'); $date = new Zend_Date(); $date->set('00:01:00',Zend_Date::TIMES); $startDate = $date->get(Zend_Date::TIMESTAMP); echo 'start date: ' . date("j.n.Y H:i",$startDate) . PHP_EOL; $date->set('23:59:00',Zend_Date::TIMES); $endDate = $date->get(Zend_Date::TIMESTAMP); echo 'end date: ' . date("j.n.Y H:i",$endDate) . PHP_EOL; 这输出: start date: 24.3.2012 23:01 end date: 24.3.2012 23:59 这是白天关闭. 如果我将日期更改为“2012年3月26日12:00:00”,则会正确输出: start date: 26.3.2012 00:01 end date: 26.3.2012 23:59 在两种情况下,使用mktime而不是Zend_Date都可以正常工作.它是Zend_Date中的错误吗?我想是的,所以我已经发布了一个错误报告http://framework.zend.com/issues/browse/ZF-12121.但也许我错过了一些明显的东西? 解决方法
我刚刚发现堆栈溢出,它完全解决了我的问题(和你的一样)
见Bug in Zend_Date (back in time) 祝好运 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |