我使用此代码获取当年第1周的第1个日期:
echo date('Y-m-d',strtotime('2018W01')); #JAN 1 is Monday, returned 01/01
echo date('Y-m-d',strtotime('2013W01')); #JAN 1 is Tuesday, returned 12/31
echo date('Y-m-d',strtotime('2014W01')); #JAN 1 is Wednesday, returned 12/30
echo date('Y-m-d',strtotime('2015W01')); #JAN 1 is Thursday, returned 12/29
echo date('Y-m-d',strtotime('2016W01')); #JAN 1 is Friday, returned 01/04!? (shouldn't it be 12/28)
echo date('Y-m-d',strtotime('2022W01')); #JAN 1 is Saturday, returned 01/03!? (shouldn't it be 12/27)
echo date('Y-m-d',strtotime('2017W01')); #JAN 1 is Sunday, returned 01/02!? (shouldn't it be 12/26)
由于大于5.2.7的PHP告诉我星期一是一周的第一天,所以我希望2017年,即一周的第一天,应该是12/26。在某些地方是否有一个周数配置,以便PHP每年正确显示一年中的第一天,一周中的哪一周? TIA
答案 0 :(得分:2)
echo date('Y-m-d',strtotime('2016W01'));
#JAN 1 is Friday, returned 01/04!? (shouldn't it be 12/28)
不,它不应该是12/28,因为一年中的第一周有这个规则:
如果1月1日是星期一,星期二,星期三或星期四,则是01周。如果1月1日是星期五,则是上一年第53周的一部分;如果在星期六,它是第52周的一部分(如果前一年是闰年,则为53);如果在星期天,这是去年第52周的一部分。
其他例子也是正确的。阅读更多here。