Я столкнулся с интересной проблемой, используя функцию 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");