#jquery #json #date #datepicker #google-calendar-api
#jquery #json #Дата #выбор даты #google-calendar-api
Вопрос:
Я интегрирую API календаря Google с jQuery DatePicker.
Мой код отлично работает в любом браузере, кроме Internet Explorer, как обычно.
В настоящее время у меня есть этот код:
$.getJSON("http://www.google.com/calendar/feeds/developer-calendar@google.com/public/full?alt=json", function(data, textStatus){
$.each(data.feed.entry, function(index, event){
if(event.gd$when) {
var event_date = $.datepicker.formatDate('yymmdd', new Date(event.gd$when[0].startTime));
if (!(calendar_data.hasOwnProperty(event_date))) {
calendar_data[event_date] = new Array();
}
event.gd$when[0].formatedTime = $.datepicker.formatDate('MM d, yy', new Date(event.gd$when[0].startTime));
calendar_data[event_date].push(event);
}
});
showEvent(new Date());
$('#calendar-datepicker').datepicker("refresh");
});
Это не работает в IE, потому что IE использует часовой пояс клиента для импорта дат.
Даты из календаря Google не указаны в местном часовом поясе. Я видел, что могу добавить ctz
(пользовательский часовой пояс) к своему вызову JSON, но я не могу найти никакой информации об этом. Я знаю, что это не смещение часового пояса.
Моя проблема: Internet Explorer не может получить даты календаря Google. Как я могу это исправить?
Комментарии:
1. Word Maths In Title = глупый заголовок
Ответ №1:
Хммм … отказаться от поддержки IE? к черту хромых пользователей! Я знаю, что это ужасный ответ, но я бы все равно проголосовал за него, если увижу его…
На серьезной ноте, разве вы не можете открыть исключение для ie и учесть математику?
Ответ №2:
new Date(event.gd$when[0].startTime)
возвращает NAN на основе браузера
так что меняйте
var event_date = $.datepicker.formatDate('yymmdd', new Date(event.gd$when[0].startTime));
Для
var event_date = $.datepicker.formatDate('yy-mm-dd', Date.parse(event.gd$when[0].startTime));
Ответ №3:
Можете ли вы получить идентификатор часового пояса из этого календаря Google? Если да, то вы готовы к работе. Вы можете преобразовать его.