[英]UTC date and time to local
我寫了一個函數來將UTC時間反轉到當地時間
function utcToLocal(utc){
var t = new Date(Number(utc));
d = [t.getFullYear(), t.getMonth(), t.getDate()].join('/');
d += ' ' + t.toLocaleTimeString();
return d;
}
但我不能確認這段代碼是對的嗎?
您應該能夠將UTC時間戳轉換為本地日期,只需減去本地偏移量(以分鍾為單位),因此:
function utcToLocal(utc){
// Create a local date from the UTC string
var t = new Date(Number(utc));
// Get the offset in ms
var offset = t.getTimezoneOffset()*60000;
// Subtract from the UTC time to get local
t.setTime(t.getTime() - offset);
// do whatever
var d = [t.getFullYear(), t.getMonth(), t.getDate()].join('/');
d += ' ' + t.toLocaleTimeString();
return d;
}
我在哪里,偏移是-600,所以我需要從UTC時間減去-36,000,000毫秒(實際上增加36,000,000毫秒)。
我可能誤解了這個問題。
javascript日期實例的內部值是UTC時間片段(以毫秒為單位)。 因此,如果utc
是這樣的時間(例如2012-08-19T00:00:00Z是1345334400000),則OP將基於該值創建日期實例,並且toLocaleTimeString
將顯示所提供的UTC的本地時間的實現相關字符串。時間。
因此,如果當地時區偏移量為-6小時,則alert(new Date(1345334400000)))
顯示類似於星期六2012年8月18日18:00:00 GMT-600 。
我假設OP想要將當地時間設置為UTC時間,例如2012-08-19T00:00:00Z將成為2012-08-19T00:00:00本地時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.