Я хотел бы получить YearWeek от DateTime в PHP:
$day = \DateTime ...
$YearWeek = date("YW", date_timestamp_get($day));
Но если неделя длится два года, она не работает:
$day // 2017-01-01
$YearWeek // I get 201752 instead of 201652
Что я должен делать?
Из руководства по Дата(), использование o
вместо Y
:
ISO-8601 недельный год нумерации. Это имеет то же значение, что и Y, за исключением
что если номер недели ISO (W) относится к предыдущему или следующему году,
этот год используется вместо. (добавлено в PHP 5.1.0)
$day = strtotime('2017-01-01');
echo date("YW", $day); //201752
echo date("oW", $day); //201652
Других решений пока нет …