加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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)

祝好运

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读