2016-08-09 1 views
1

Я пытаюсь извлечь из этого примера:Полный календарь «Time Zone Demo» Пример

http://fullcalendar.io/js/fullcalendar-2.9.1/demos/timezones.html

Пожалуйста, нажмите правой кнопкой мыши на веб-странице, чтобы просмотреть исходный код страницы.

Единственная часть, которая сейчас не работает следующим образом:

 // when the timezone selector changes, dynamically change the calendar option 
     $('#timezone-selector').on('change', function() { 
      $('#calendar').fullCalendar('option', 'timezone', this.value || false); 
     }); 

Он пытается изменить календарь отображения времени на основе выбора различных часовых поясов.

Я не эксперт в Javascript и попытался найти объяснения FullCalendar об этом, но не повезло.

Мой вопрос:

1) Что может "this.value", возможно, имели в виду? "|| false"?

2) В бэкэнде моего веб-приложения я использую Java-сервлет с hibernate 3.6. Для ввода времени (время начала и окончания) я использую LocalDateTime из Java 8 и сохраняю его как временную метку UTC в MySQL. Не уверен, что это лучшая практика для календарного планировщика?

3) В настоящее время у меня нет временной зоны. Я привязан к метке времени, хранящейся в базе данных. Но я создал список для пользователя на выбор, как это сделал в примере FullCalendar. Любое предложение о том, что является лучшим способом хранения, а затем использовать timezoneId для отображения этого календаря в разных часовых поясах?

На данный момент я думаю, что попытка полностью имитировать пример FullCalendar не очень практична, потому что моя база данных отличается от их. Я открыт для любых хороших предложений о том, как получить текущий часовой пояс пользователя от его выбора, сохранить его в базе данных и позже отобразить правильное значение времени, основанное на любом часовом поясе, выбранном пользователем на его странице просмотра календаря.

ответ

2

Если вы проверите выбор часового пояса, вы увидите, что каждая опция имеет значение. this.value означает, что функция on change получит значение выбранного параметра для назначения в качестве часового пояса. Что касается сохранения ваших времен, они должны храниться как временная метка UTC, как вы делаете. Для получения часового пояса я использую jstz для получения часового пояса пользователей, это так же просто, как эти две строки.

Это замечательно, потому что вам не нужно запрашивать у пользователя свой часовой пояс. Затем, когда я запрашиваю свою базу данных событий, я прохожу в часовом поясе

events: { 
    url: "calendarManager.php?request=get&timezone=" + timezone + "&userid=" + userID 
}, 

и использовать PHP для преобразования UTC для пользователей локальной временной зоны и возвращаем JSon закодированы события.

 Смежные вопросы

  • Нет связанных вопросов^_^