我发现了最奇怪的错误.而且我不是要求修复,我只是好奇你们是否经历过同样的事情并留待将来参考.
我有以下代码,应该在2016年的每一天输出
$day = "2016-01-01";
for($i = 1; $i<= 365; $i++){
$day = date("Y-m-d", strtotime($day)+60*60*24);
echo $day."<br/>";
}
但是在2016年10月30日之后它停止增加并显示相同的日期.
PHP版本是5.6.22.这种情况每年都会发生,而不仅仅是2016年.
知道是什么导致了这个吗?
这是特定PHP版本的问题吗?
这是时区问题吗?
您是否经历过相同或类似的事情?
我感兴趣的是这个问题的原因. strtotime函数似乎有问题.
解决方法:
在时间戳上添加秒数以更改天/周/月可能会产生意外结果.尝试明确添加一天……
$day = "2016-01-01";
for($i = 1; $i<= 365; $i++){
$day = date("Y-m-d", strtotime("+ 1 day", strtotime($day)));
echo $day.PHP_EOL;
}
您的PHP设置为哪个时区,是否在10月底有夏令时变化? – 这将导致日期坚持,因为这一天可能长达25小时.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。