2013-06-13 118 views
2

我在Web應用程序的工作,用戶可以在其中在不同的日期 - 時間轉換應用進一步使用的應用程序設置他/她的時區的另一個時區。選定的時區可能與用戶的區域設置時區不同。轉換日期在一個時區使用時區縮寫

我目前遇到了一個問題,我需要將用戶選擇的日期(該用戶假定在他/她在應用程序中選擇的時區)與當前日期進行比較,以查看所選日期是否爲日期在未來。參考我搜索過的所有地方,我發現我可以在用戶區域或UTC時間獲取當前日期。

所以我的問題是要點 - 有什麼辦法將日期從一個時區轉換到另一個使用的時區的縮寫?

我尋覓了很多在這裏發帖之前,但不能得到任何解決方案。我在搜索過程中發現的大多數地方都表明,沒有可用的解決方案。

我一直在使用date.js嘗試,但因爲它是相當過時,也通過它支持的時區的縮寫是一套非常有限不足夠的目的。我也看過一個時區,但我認爲它不適用於時區縮寫。

是否有它可以使用JavaScript或jQuery的實現什麼辦法?

回答

4

在這裏你去:

// calculate local time in a different city given the city's UTC offset 
function calcTime(city, offset) { 

    // create Date object for current location 
    var date = new Date(); 

    // convert to msec 
    // add local time zone offset 
    // get UTC time in msec 
    var utc = date.getTime() + (date.getTimezoneOffset() * 60000); 

    // create new Date object for different city 
    // using supplied offset 
    var newDate = new Date(utc + (3600000 * offset)); 

    // return time as a string 
    return "The local time in " + city + " is " + newDate.toLocaleString(); 
} 

// get Bombay time 
console.log(calcTime('Bombay', '+5.5')); 

// get Singapore time 
console.log(calcTime('Singapore', '+8')); 

// get London time 
console.log(calcTime('London', '+1')); 
+1

感謝您的回答...它適用於所有地方日光節約不活躍的時區。請告訴我,如何讓它適用於夏令時的時區? –

+0

是的。這不是一個內置的Jscript功能。它是一個計算轉換。 – 2013-06-13 11:41:08

+0

如果您使用的是timezone-js,那麼這是代碼: var dt = new timezoneJS.Date(「2012/04/10 10:10:30 +0000」,'Europe/London'); dt.setTimezone(「Asia/Jakarta」); console.debug(DT); //返回格式化的日期時間在亞洲/雅加達 – 2013-06-13 11:45:38

相關問題