我有这段代码
$week = date('W', strtotime("2013-12-30"));
和$ week返回01
如果我们在十二月,那该怎么回01?我怎样才能解决这个问题?因为这会影响代码的另一部分,我试图获得每周的星期一:
$monday = date("Y-m-d", strtotime("{$year}-W{$week}-1"));
但是,当我按照那个日期这样做时,它将返回第01周的星期一。
答案 0 :(得分:3)
date("W")
返回iso8601周数。那个日期是明年的第一周。当12月的最后一天属于周中期时,可能会发生这种情况。这也可能发生在12月结束的一周。 1月的前几天可以被视为前一年的一部分。
有关更好的解释,请参阅Week dates in Wikipedia:
如果1月1日是星期一,星期二,星期三或星期四,则是01周。如果1月1日是星期五,星期六或星期日,则是上一年的第52周或第53周(没有第00周)。 12月28日总是在同一年的最后一周。
答案 1 :(得分:1)
它工作正常。
“周数”有时违反直觉。请参阅“Jimmy”中的说明,了解使用W
格式的日期文档:http://www.php.net/manual/en/function.date.php#106974