PHP的日期()函数不给我正确的一年

时间:2018-11-02 17:19:05

标签: php date

echo date("Y", strtotime('2019-W01'));

这应该给我'2019'吗?

不,它给出的是'2018'。

在什么时候

echo date("Y", strtotime('2019-W02'));

这次是'2019',对吧。

我想这是一个错误或有我不知道的东西吗?

(测试时,默认时区为UTC)

1 个答案:

答案 0 :(得分:2)

这不是错误,可以按预期运行。 echo $date->format('Y');之所以返回2018,是因为 2019 第一周 2018-12-31 的这一天。让我们看看当我尝试使用格式Y-m-d时,例如echo date("Y-m-d", strtotime('2019-W01'));返回2018-12-31,而echo date("Y", strtotime('2019-W01'));则返回2019,因为它是2019-01-07。让我们尝试一下echo date("Y-m-d", strtotime('2019-W02'));

<?php
$date= new \DateTime('2019-W01');
echo $date->format('Y');
echo PHP_EOL;
echo $date->format('Y-m-d');
//echo date("Y", strtotime('2019-W01'));
?>

演示: https://3v4l.org/GsF1t