我從具有UTC格式時間的數據庫接收日期。 日期與我無關,我只需要小時和分鐘。JavaScript Mountain夏令時奇數行爲
問題
當我發送的日期到數據庫我把它轉換從本地時間到UTC使用此功能:
self.toUTC = function (date) {
var now = new Date(date);
var utc = new Date(now.getTime() + now.getTimezoneOffset() * 60000);
return utc;
};
當我在開發者工具看從Chrome中我看到這樣的:
奇怪的是,當我收到從數據巴斯日期e並將其轉換回當地時間,由於日光節約時間的原因,它爲格林威治標準時間-0600獲取正確的格林威治標準時間。我使用這個功能吧:
//converts date to just time in utc format to include in menu
self.setTimeForMenu = function (dateUTC) {
var date = new Date(dateUTC + ' UTC');
var hours = (date.getHours()<10?'0':'') + date.getHours();
var minutes = (date.getMinutes()<10?'0':'') + date.getMinutes();
return hours + ':' + minutes;
};
當我看到在Chrome開發者工具的日期我看到這一點:
我已經試過
- 上述JavaScript函數的組合
- moment.js但我得到了相同的結果結果
對於接下來我應該做什麼,你們有沒有建議?
編輯1
如果我使用now.toUTCString()或now.toISOString(),因爲當我搶的日期,並將其設置在一個新的日期JavaScript對象,它已經將其設置爲它不會改變任何東西GMT -0700:
'now.getTimezoneOffset()'返回什麼?所有瀏覽器都是一樣的嗎? –
對於所有瀏覽器是420,這意味着GMT -0700 – euther
您可以顯示一個示例用法來說明如何使用'toUTC()'函數嗎?我不認爲這樣的功能是必要的。您可以使用[getUTCHours()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCHours)和[getUTCMinutes()](https:// developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes)獲取UTC時間.. –