PHP date()返回奇数值

时间:2010-03-18 20:28:40

标签: php date

echo date("W",strtotime('2010-01-01'));

这输出53.我希望它输出1.任何人都可以确认这种行为,或者解释原因吗?我找不到关于它的错误报告。

3 个答案:

答案 0 :(得分:6)

这根本不是一个错误,它是预期的行为。来自PHP的Date Page

  

W:ISO-8601周的一周,周一开始的周数

2010年1月1日,周五下跌,因此其周数将属于2009年,成为2009年第53周的一部分。2010年1月4日将是第1周。

答案 1 :(得分:2)

从12月开始到次年1月结束的一周属于其大部分日子所在的年份。因此,12月至少4天的一周是该年的最后一周,1月至少4天的一周是新年的第一周。

所以......一年的最后一周总是包含12月28日。如果您在某一年的某一天取得日期(“W”),那么您将获得该年的正确周数。该定义的另一端是,1月的第4天总是在一年的第一周。

答案 2 :(得分:1)

返回ISO-8601 week number of year

来自Wikipedia

  

第01周有相互对应的描述:

     
      
  • 本周第一个星期四(正式的ISO定义),
  •   
  • 1月4日的一周,
  •   
  • 第一周,在开始年份的大部分时间(四次或更多次)和
  •   
  • 从12月29日至1月4日的星期一开始的一周。
  •   

由于2010-01-01是星期五,因此不符合条件。