PHP strtotime 只在星期天出错

PHP strtotime wrong only on sundays

目前我正在使用以下方法获取本周和下周的周一和周五的日期。

$curWeekStart = date('d.m', strtotime('monday this week'));
$curWeekEnd = date('d.m', strtotime('friday this week'));

$nextWeekStart = date('d.m', strtotime('monday next week'));
$nextWeekEnd = date('d.m', strtotime('friday next week'));

一切正常,直到 "sunday" 那天到来,比如今天.. 然后上面的这些东西只在星期一而不是其他日子显示给我。星期二、星期三、星期四、星期五 ecc 不工作,它只在星期一返回我。此错误仅在星期日发生,其他日期不会发生。

这是输出:

$curWeekStart == 13.03;
$curWeekEnd == 13.03;

$nextWeekStart == 20.03;
$nextWeekEnd == 20.03;

有没有人知道如何解决这个问题?或者您知道替代方法吗?

这可能是 a bug that affected PHP versions 5.6.23 to 5.6.30, 7.0.8 to 7.0.16, and 7.1.0 to 7.1.2. It also 的结果。

该错误已在 PHP 7.0.17 和 7.1.3 中解决,但在 PHP 5.6(撰写本文时为 5.6.30)的最新版本中仍然存在now receives only security fixes 因此可能永远不会收到修复。

将 PHP 升级到未受影响的版本可能是最好的解决方案,但如果您需要受影响版本的解决方法 并获得您想要的结果。