Функция php date () не дает мне правильного года - PullRequest
0 голосов
/ 02 ноября 2018
echo date("Y", strtotime('2019-W01'));

Это должно дать мне «2019», верно?

Нет, это дает '2018'.

Когда это

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

На этот раз даёт «2019», верно.

Полагаю, это ошибка или есть что-то, чего я не знаю?

(часовой пояс по умолчанию UTC при тестировании этого)

1 Ответ

0 голосов
/ 02 ноября 2018

Это не ошибка, она работает, как и ожидалось. 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'));
?>

DEMO: https://3v4l.org/GsF1t

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...