以下是该问题的摘要:星期日,strtotime('this week')返回下周的开始.
在PHP中,本周似乎从星期一开始.但是,除了星期天之外的任何一天,这段代码
echo date('Y-m-d', strtotime('monday this week', strtotime('last sunday')));
Run Code Online (Sandbox Code Playgroud)
输出本周的星期一的日期,似乎它应该在周一的最后几周输出.看起来,在这种情况下,PHP将星期日和星期一视为本周的开始.现在是2012年12月10日星期一,或2012-12-10.date('Y-m-d', strtotime('sunday last week'))返回2012-12-09- 昨天.
这是一个错误,还是我错过了什么?看起来这个明显的臭虫应该是众所周知的,但我找不到任何关于它的东西.本周开始的唯一方法是在周日使用一些特殊处理方法吗?
$week_offset = (int) 'sunday' == date('l');
$week_start = strtotime("-$week_offset monday"); // 1 or 0 Mondays ago
Run Code Online (Sandbox Code Playgroud)
tva*_*anc 10
据我所知,这是一个错误.我认为没有合理的理由strtotime('this week');可以归还未来的日期.这是一个非常重要的错误.在我的特定情况下,我有一个排行榜,显示自本周开始以来用户得分最多的用户.但是在星期天,它是空的,因为strtotime返回了未来日期的时间戳.我很怀疑,因为我不知道这怎么会被忽视,但我找不到任何其他关于这个bug的报道.
伙计们,感谢您的所有时间和帮助.
这个答案很晚,但这是我一直在努力的事情.到目前为止,我尝试的每个解决方案都因某种原因而出现故障.这就是我最终得到的对我有用的东西.(虽然它可能看起来很漂亮,但它至少有效).
$thisMonday = strtotime('next Monday -1 week', strtotime('this sunday'));
Run Code Online (Sandbox Code Playgroud)