首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP数据增量错误

PHP数据增量错误
EN

Stack Overflow用户
提问于 2015-10-05 15:07:44
回答 1查看 52关注 0票数 0

我试图创建一个日历,其中日期递增,每个日期是可点击的,这链接到搜索。奇怪的是,日期停止在25th October,并停止递增。即24th, 25th, 25th, 25th...

日历从哪一天开始并不重要(盯着它看了几天),而是25th it stops incrementing

感谢任何建议。(差距后的第二部分可能无关紧要,但如果可能有任何联系,就把它包括在内)

代码语言:javascript
复制
for ($i = 1; $i <= 30; $i++){ 
    $date = date("d-m-Y", strtotime($date) + 86400);
    array_push($array_date, $date);
    $separatedate = explode('-', $date);   
    $getday = date("l", strtotime($date));
    print "<button class='submitsearch btn' value=$array_date[$i]>" . ltrim($separatedate[0], '0') . "<br>" . $getday . "<br></button>";

    if (!checkdate($separatedate[1] , $separatedate[0]+1 , $separatedate[2])) {
        $nextmonth = date("F", strtotime($date) + 86400);
       print "<strong>". $nextmonth . "</strong><hr/>";
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-05 15:10:17

这就是问题所在:

代码语言:javascript
复制
$date = date("d-m-Y", strtotime($date) + 86400);

您似乎依赖于此来增加日期。通常,那会很好..。但是,由于夏令时间的变化,我们一天有25个小时的时间并不是这样。

我建议您使用日期/时间算术函数(例如,date_add)来增加一天,而不是增加24小时。或者确保所有算法都是在UTC中完成的,因为UTC不会对时区进行任何更改。通常,我会尽量避免执行比实际需要的更多的字符串转换:保持一个变量以惯用的方式表示日期/时间,并对其执行算术--然后在需要时对该变量进行格式化。如果你这么做的话,我认为没有必要在任何地方打电话给strtotime

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32951898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档