PHP 86400 * 7工作日-星期一并不总是星期一


PHP 86400 * 7 weekday - monday isn't always a monday?

我真的很好奇为什么这个短代码的输出并不总是在同一个工作日?

为什么有一天从星期一变成星期天?当我使用strtotime('+1 week', $t);时,它按预期工作。

谢谢你的解释!

<?php
            $t = strtotime('2016-09-19');
            for ($i = 0; $i < 12; $i++) {
                echo date('w', $t)."'n";
                $t += 86400 * 7;     
            }
?>

因为您正在添加小时数,并且您正在使用夏令时的时区。当你到达11月6日时,夏令时开始,这一天显示前一天。设置您的时区为UTC,或者使用+1 day代替小时。