zend-framework – Zend_Date:DST更改日的错误结果

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了zend-framework – Zend_Date:DST更改日的错误结果脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
“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)

祝好运

脚本宝典总结

以上是脚本宝典为你收集整理的zend-framework – Zend_Date:DST更改日的错误结果全部内容,希望文章能够帮你解决zend-framework – Zend_Date:DST更改日的错误结果所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。