2012-05-13 30 views
1

我有一個服務器時間(美國的東部成本),我想轉換爲用戶的當地時間,無論他的位置。我不知道用戶的時區。jQuery:如何將UTC中的服務器時間轉換爲Web瀏覽器的本地時間?

這裏是存儲在MongoDB的樣本日期(UTC時間):

ISODate("2012-05-03T09:40:34.764Z") which becomes 5/3/2012 5:40:34 AM 

我想將其轉換爲用戶的本地時間。

有沒有一個插件我可以看看,或者有人做了沒有插件?

這是我的代碼是不工作:

var svrDate = new Date('5/3/2012 5:40:34 AM'); 
var tzo = ((new Date()).getTimezoneOffset()/60) * (-1); 
var userTime = new Date(svrDate.setHours(svrDate.getHours() + tzo)).toLocaleString()); 
+0

的可能重複[如何服務器時間轉換成UTC到Web瀏覽器的本地時間?(http://stackoverflow.com/questions/10570024/how-to-convert-server-time-in-utc -to-web-browsers-local-time) - 你已經問過這個問題,並且它被封閉爲[這個問題](http://stackoverflow.com/q/6525538/218196)的重複。如果你想讓你的問題保持開放,你應該明確說明爲什麼其他問題不能解決你的問題。您還應具體說明究竟哪些不適用於您的代碼。 –

+0

爲什麼downvote。問題是真實的,建議可能是好的。 –

回答

4

簡單:

var d = new Date("2012-05-03T09:40:34.764Z"); 
alert(d); 

在我而言,這將顯示:

Thu May 03 2012 02:40:34 GMT-0700 (PDT) 

因爲我在加州來的。

字符串末尾的Z表示日期字符串爲UTC。 JavaScript已經知道如何處理它。如果你想要本地時間,只需調用通常的getTime(),getMonth(),getDay()方法即可。如果你想要UTC時間,請調用它們的UTC變量:getUTCTime(),getUTCMonth(),getUTCDay()等。

0
`//Covert datetime by GMT offset 
//If toUTC is true then return UTC time other wise return local time 
function convertLocalDateToUTCDate(date, toUTC) { 
    date = new Date(date); 
    //Local time converted to UTC 
    console.log("Time :" + date); 
    var localOffset = date.getTimezoneOffset() * 60000; 
    var localTime = date.getTime(); 
    if (toUTC) 
    { 
     date = localTime + localOffset; 
    } 
    else 
    { 
     date = localTime - localOffset; 
    } 
    date = new Date(date); 
    console.log("Converted time" + date); 
    return date; 
} 
` 
+1

請添加更多詳情,解釋您的答案並刪除雙重代碼標籤。 – Andrei

相關問題