2015-10-08 19 views
-1

我必須使用javascript在UI中顯示從服務接收到的日期。JavaScripts將服務收到的日期視爲UTC格式

var now = new Date ('2015-09-26T09:52:19'); 
alert(now) // it alerts Sat Sep 26 2015 02:52:19 GMT-0700 (Pacific Daylight Time) 

我在PST時區,我想知道爲什麼Javascript把收到的日期作爲UTC。

還有一種觀察是如果我從日期中刪除「T」。 Javascript不會將其視爲UTC日期。

+0

爲什麼你有T呢? – Danieboy

+0

它來自服務的格式..所有的日期有T –

+0

客戶端不知道它是什麼時區 - 你應該把所有的日期時間作爲UTC來簡化事情。 –

回答

1

「JavaScript並沒有對時區,當您創建 從ISO字符串,它是在該網站的 時區在Javascript的日期,則Date對象會自動轉換成 瀏覽器的本地時區的原生支持(這可能與該網站的時區 不同)沒有指定時區的字符串也會在 瀏覽器的本地時區中創建。「賈森 - 玄,2013年8月25日,在Javascript Nulogy.com

與時區交易看一看到,如果你想時區之間輕鬆轉換momentjs(www.momentjs.com)。

這是直接從他們的網站。

var newYork = moment.tz("2014-06-01 12:00", "America/New_York"); 
var losAngeles = newYork.clone().tz("America/Los_Angeles"); 
var london  = newYork.clone().tz("Europe/London"); 

newYork.format(); // 2014-06-01T12:00:00-04:00 
losAngeles.format(); // 2014-06-01T09:00:00-07:00 
london.format();  // 2014-06-01T17:00:00+01:00 
+0

另外一個觀察 - 僅針對chrome,將其轉換爲其他瀏覽器日期的本地時區的日期視爲本地時區日期。 –