簡體   English   中英

UTC到本地的日期和時間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM