我試圖將UTC日期轉換爲我的節點服務器上的本地時間,最後以hh:mm:ss
(不使用Moment JS)的格式返回本地時間。我將客戶端的時區偏移量傳遞給Node,即GMT-6。將本地化的ISO日期格式化爲hh:mm:ss
我原來的時間是:2017-05-05T00:25:11.378Z
// ISOTimeString = `2017-05-05T00:25:11.378Z`
// offsetInMinutes = 360; (GMT - 6)
function isoDateToLocalDate(ISOTimeString, offsetInMinutes) {
var newTime = new Date(ISOTimeString);
return new Date(newTime.getTime() - (offsetInMinutes * 60000));
}
本地化時間是2017-05-04T18:25:11.378Z
,其是正確的(2017-05-05T00:25:11
- 6 hours
= 2017-05-04T18:25:11
)。
// localIsoDate: 2017-05-04T18:25:11.378Z Date object
function formatTime(localIsoDate) {
var hh = localIsoDate.getHours();
var mm = localIsoDate.getMinutes();
var ss = localIsoDate.getSeconds();
return [hh, mm, ss].join(':');
}
// formatted: 12:25:11
的問題,同時仍然在服務器上,當我試圖格式化爲hh:mm:ss
,它減去6小時,給我12:25:11
。我不想再次轉換,我只想從已經本地化的時間格式化並顯示18:25:11
。
我該怎麼做?
注意:請記住,我沒有它傳回客戶端在我的情況後,時區轉換選項。
在* formatTime *函數('localIsoDate.getUTCHours()'等)中使用UTC方法。 – RobG