我開發了一個用作數字顯示屏幻燈片的網站,將幾個不同的Google日曆合併到一個視圖中。 http://www.anokaramsey.edu/events/displaysjavascript中的Google Calendar API時區覆蓋
我遇到了時區問題。我們在中部時間。數字顯示器具有超級隨機配置,以便將本網站作爲幻燈片展示。所以它從EST的雲端瀏覽器定期瀏覽網站,並將圖像發送到我們的數字顯示軟件。 http://webshots.channelshd.com/remoteImages/anokaramsey-1.png
因此,事件正在顯示器上呈現給EST,但我需要它們留在CST上。我正在使用moment.js & moment-timezone.js。
這是我的JavaScript試圖設置正確的時區,但無濟於事。
...
var request = gapi.client.calendar.events.list({
'calendarId': cals[c],
'timeMin': (new Date()).toISOString(),
'lazyFetching': false,
'showDeleted': false,
'singleEvents': true,
'maxResults': 5,
'futureevents': true,
'orderBy': 'startTime'
});
request.execute(function (resp) {
for (i = 0; i < resp.items.length; i++) {
gevents.push(resp.items[i]); // keep. to monitor original gcal objects.
var start = resp.items[i].start.dateTime;
if (!start) {
start = resp.items[i].start.date;
};
var end = resp.items[i].end.dateTime;
if (!end) {
end = resp.items[i].end.date;
};
events.push({
id: resp.items[i].id,
title: resp.items[i].summary,
cal: resp.items[i].organizer.email,
start: start,
end: end,
url: resp.items[i].htmlLink,
location: resp.items[i].location,
descr: resp.items[i].description
});
}
});
}
}
...
function display(events) {
if (events.length > 0) {
events.sort(function (a, b) {
// super simple sort
return new Date(a.start) - new Date(b.start);
});
for (i = 0; i < events.length; i++) {
var event = events[i];
var when = event.start;
var until = event.end;
var header = moment(when).format("MMM D, YYYY");
if (header != oldHeader) {
var id = moment(when);
//appendPre('<h3>'+header+'</h3>');
appendPre('<ul id="' + id + '">');
}
var startTime = moment(when).tz("America/Chicago").format("h:mma");
var endTime = moment(until).tz("America/Chicago").format("h:mma");
...
你應該能夠看到從上面的網址中的所有文件互通,但如果更多的代碼會有所幫助,請讓我知道。
準確地說,你的意思是「但無濟於事」。聽起來像「它不工作」,但我們真的需要知道*它如何*它不起作用,以幫助你。 –
此外,它將有助於瞭解如何檢索'when'和'until',或者至少提供樣本值。我不確定你的問題是關於頂部還是底部,或者他們的相關問題。 –
javascript「不起作用」,因爲當我試圖將它保留在CST上時,顯示器上反映的時區已恢復爲EST。 – mbelmont