我有一个分页功能,它通过时间表分页并每周推进日期并显示与新日期相关的详细信息。
在测试一些新数据时,我遇到了分页问题。因为它不会在 2012 年 10 月 22 日页面通过。
调试代码我最终找到了问题的根源,即将表示 22/10/2012 的日期戳增加 7 天返回(通过 strftime)日期为 28/10/2012,而显然我期待的日期是 29 /10/2012。此错误有效地导致连续循环,因为 %W(驱动每周分页)在 2012 年 10 月 22 日为 43,在 2012 年 10 月 28 日为 43,当然在 2012 年 10 月 29 日应该为 44。
在隔离和重新创建此问题的快速测试中,我使用了以下内容:
/*
* test %W
*/
$time_Stamp_1 = mktime(0,0,0,10,22,2012);
echo "date : " . strftime("%d/%m/%Y", $time_Stamp_1);
echo "W for first time stamp " . $time_Stamp_1 . " is " . strftime("%W", $time_Stamp_1);
$time_Stamp_1a = $time_Stamp_1 += (60 * 60 * 24 * 7);
echo "new date : " . strftime("%d/%m/%Y", $time_Stamp_1a);
echo "W for new date time stamp: " . strftime("%W", $time_Stamp_1a);
$time_Stamp_2 = mktime(0,0,0,10,29,2012);
echo "W for second time stamp: " . strftime("%W", $time_Stamp_2);
分页在我测试过的所有其他周之间愉快地移动,并且显然适当地使用了这个增量/减量。
希望我遗漏了一些明显的东西。有什么想法吗?