Получение года и недели года с даты PHP (), когда неделя охватывает два года

Я столкнулся с интересной проблемой, используя функцию date() PHP. Не повезло найти обсуждение этого на SO или с помощью Google, но, возможно, кто-то еще сталкивался с тем же вопросом раньше?

Я пытаюсь получить ГОД и НЕДЕЛЯ ГОДА на заданную метку времени. Это код, который я использую:

date("Y-\WW");

Который на сегодняшний день корректно выводит: 2011-W39 .

Проблема заключается в поставке метки времени, если соответствующая временная метка, например, 3 января 2011 года (которая фактически была частью «52-й недели 2010 года». PHP правильно возвращает W52, но также возвращает 2011 год в качестве года , вместо 2010 года.

date("Y-\WW", 1294016400);

Выходы: 2011-W52

Любая идея о том, как решить эту проблему? Я должен отметить, что хотя в этом случае было бы просто просто сравнить, что strtotime() вывода больше текущего time() и настраивается, но мне нужно решение, которое будет работать и в предыдущие годы (например, если то же самое произошло и с 3 января 2010 года).

Darn, по-видимому, я не перечитал документацию достаточно близко, письмо o было добавлено в PHP 5.1.0:

Из документации для date() :

Номер года ISO-8601. Это имеет то же значение, что и Y, за исключением того, что если номер недели ISO (W) относится к предыдущему или следующему году, этот год используется вместо этого. (добавлено в PHP 5.1.0)

Поэтому мой код должен был быть date("o-\WW");