使用Year计算PHP中的周数,这是一个错误吗?

时间:2014-02-17 23:29:20

标签: php

这很奇怪,我不知道这是不是一个错误,但请有人尝试。

在PHP上执行此操作

echo date("Y-W",strtotime("2014W05 -1 weeks"));

结果将是2014-04,对吗?今年WEEKNUMBER。没问题。 但现在,试试这个:

echo date("Y-W",strtotime("2014W02 -1 weeks"));

为什么是2013-01,为什么是2013?怎么了?它应该是2014-01,对吧?

我做错了什么?这是一个错误吗?

我的PHP版本:5.4.22

1 个答案:

答案 0 :(得分:10)

Y is year from the date
o is ISO-8601 year number

所以,如果你这样做

echo date("o-W",strtotime("2014W05 -1 weeks"))."<br/>";

echo date("o-W",strtotime("2014W02 -1 weeks"));

你会得到

2014-04
2014-01

编辑Jasper

因为日期是一个时刻而不是一周,所以你要求一周并获得该周的第一个时刻。根据标准,周数基于周四所在的年份。因此,周数为1,但日期仍为2013年。