2009-06-12 77 views

回答

2

您將不得不使用Javascript - 因爲您不知道服務器端的客戶端時區。您可以使用下面的代碼並從本地時間提取相關的時區字符串。

var now = new Date(); 
localtime = now.toTimeString(); 

這將返回類似「12時21分44秒GMT-0400(EDT)」

+0

嗯...這就是結束。我得到「東部夏令時間」,而不是縮寫。 (其實,我*可*使用PHP,因爲這是一個應用程序這將在用戶的機器上本地運行。) – sprugman 2009-06-12 16:50:50

+0

請參閱http://stackoverflow.com/questions/709350/time-zones和http://stackoverflow.com/questions/633300/how-do-you-get-php- to-return-the-timezone-abbreviation-aest – 2009-06-12 17:43:45

4

JavaScript有一個Date.getTimezoneOffset功能,這將給你在GMT和本地時區之間分鐘的差別。爲了從獲得實際的偏移量,你可以說:

var offset = Date.getTimezoneOffset/60 * -1 

* -1是必要的,因爲偏移量將是相反你所期望的(例如,EST,這是北京時間,將導致300,因爲格林威治時間提前300分鐘)。

從那裏,您需要將偏移量轉換爲偏移量的描述。在Javascript中沒有內置的方式來這樣做。你可以考慮創建一個查找數組,但是會出現這樣的問題,即同一偏移量有多個名稱(例如,GMT - 5可能是EST(東部標準時間)或CDT(中央夏令時))

list of timezones參見維基百科。

相關問題