У меня есть приложение, созданное на основе fullCalendar на основе jQuery
http://arshaw.com/fullcalendar/
Мои события календаря загружаются вызовом Ajax, который выводит JSON, для него настроен понедельник в качестве первого дня недели, а по умолчанию используется неделя.
Все работало нормально, но я заметил, что если я перейду к 13-й неделе (с 26 марта), события будут загружаться неправильно. Я сразу понял, что это как-то связано с переходом на летнее время, которое происходит 25 марта.
Когда я использую нажатие на кнопки «следующий / предыдущий», календарь выполняет ajax-вызов с использованием автоматически сгенерированного времени начала и окончания, мой php-скрипт на заднем плане берет дату начала, вычисляет номер недели и вызывает все события в моей базе данных. за эту неделю.
Например, на неделе 12 передаются следующие переменные:
? = 1332115200 начать и конец = 1332716400 & _ = 1331237729591
PHP скрипт:
$week_no = date('W', $_GET['start']);
, который работает как неделя № 12.
Однако на следующей неделе передаются следующие переменные:
? Начать = 1332716400 & конец = 1333321200 & _ = 1331238038820
$week_no = date('W',$_GET['start']); == 12 // same as last week
Nn дальнейшее обследование
echo date("C",1332115200); // == 2012-03-19T00:00:00+00:00
echo date("C",1332716400); //2012-03-25T23:00:00+00:00 (1 hour short of being in week 13)
Очевидно, что смена дневного света вызывает проблему.
У меня вопрос: это проблема с полным каландром или моя логика PHP?