2015-10-07 257 views
0

我有格式的日期時間字符串(「2015-10-07 15:20:00 UTC」),我想將其轉換爲客戶端的本地時區。我用下面的語句此:將UTC時間轉換爲javascript中的本地時區

var UTC_Time = new Date ("2015-10-07 15:20:00 UTC"); 

var localTime = UTC_Time.toString(); 

谷歌瀏覽器能正常工作並返回轉換時間2015年10月7日二十時20分00秒的PST這是罰款。但在IE瀏覽器(我擔心IE10)它返回相同的UTC日期,即2015-10-07 15:20:00。我怎樣才能獲得在IE瀏覽器的轉換時間。任何幫助將不勝感激。

+1

如果您正在進行大量的日期操作,您可能需要查看[momentjs](http://momentjs.com/) – Dan

+0

有沒有很多的日期操作,但主要是根據時間轉換到當地客戶的時區。無論如何,momentjs是一個很好的建議,但我無法使用momentjs獲得客戶本地時區的標準名稱。 –

回答

1

當您在javascript中顯示日期時,會將其轉換爲客戶端時間。由於您在日期字符串中指定了UTC,因此它會假定它是UTC日期。有幾種方法可以解決這個問題。

如果你只是需要一個字符串,你可以做localTime = UTC_Time.toUTCString()

如果您需要js Date對象,則可以通過從上一個對象獲取值來創建新的日期對象。

new Date(UTC_Time.getUTCFullYear(), UTC_Time.getUTCMonth(), 
    UTC_Time.getUTCDate(), UTC_Time.getUTCHours(), UTC_Time.getUTCMinutes(), 
    UTC_Time.getUTCSeconds(), UTC_Time.getUTCMilliseconds()); 

或者您可以簡單地替換字符串的UTC部分。

var dtStr = "2015-10-07 15:20:00 UTC"; 
dtStr = dtStr.replace(" UTC", ""); 
var localTime = new Date(dtStr); 

如果您知道您的字符串將始終採用相同的格式,請僅使用此選項。

相關問題