Редактировать: я получил это на работу, Вот это пример. Мне просто нужно выяснить, как автоматически обновлять часовой пояс на основе браузера. Есть идеи?
Я следовал руководству, чтобы создать лучшее встроенное представление календаря моего календаря Google.
В основном он использует XML-канал моего публичного календаря Google и Fullcalendar библиотека для воссоздания настраиваемого, встраиваемого календаря.
Я ищу хитрый способ использования часового пояса браузера пользователя для правильного отображения событий в его часовом поясе, а не только того, в котором установлен календарь.
Есть ли способ обмануть Google, чтобы он обслуживал XML-фид в часовом поясе пользователя, или, возможно, javascript для обновления значений?
В настоящее время Календарь находится в UTC, а события, радиопередачи, могут быть в любом количестве часовых поясов.
Редактировать: я заметил, что в последней версии Fullcalendar есть поддержка не динамического часового пояса Вот. Хотя я использую старую версию из учебника. Я собираюсь попробовать обновить, а затем, возможно, использовать PHP, чтобы выбрать часовой пояс при загрузке страницы.
Желаемый результат заключается в том, что пользователи видят соответствующую информацию, независимо от того, из какой страны они просматривают страницу. Вот моя попытка.
Я добавил нижеприведенный javascript, который был в учебном примере. Но, похоже, он не использует мой календарь XML. Я еще не обратился к автообновлению PHP.
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
$('#calendar').fullCalendar({
theme: true,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
// DAFFY FOR GAFE TUTORIAL Shared Calendar
// PUT THE URL TO YOUR SHARED GOOGLE CALENDAR XML FEED BETWEEN THESE SINGLE QUOTES
// AND MAKE SURE TO USE https INSTEAD OF PLAIN OLD http
events: 'https://www.google.com/calendar/feeds/mn3q9f8ncup1mhcsvd9t8q5t1s%40group.calendar.google.com/public/basic',
loading: function(bool) {
if (bool) {
$('#loading').show();
}else{
$('#loading').hide();
}
}
});
Обратите внимание, я также добавил <script src='../fullcalendar/gcal.js'></script>
в голове. Данные в новой демоверсии, похоже, получены из массива json
// Read and parse our events JSON file into an array of event data arrays.
$json = file_get_contents(dirname(__FILE__) . '/../json/events.json');
$input_arrays = json_decode($json, true);
Демо-данные в events.json выглядят так …
[
{
"title": "All Day Event",
"start": "2014-09-01"},
{
"title": "Long Event",
"start": "2014-09-07",
"end": "2014-09-10"},
{
"id": "999",
"title": "Repeating Event",
"start": "2014-09-09T16:00:00-05:00"},
{
"id": "999",
"title": "Repeating Event",
"start": "2014-09-16T16:00:00-05:00"}
]
Задача ещё не решена.
Других решений пока нет …