2013-10-24 134 views
0

我有以下的ISO 8601日期字符串:格式ISO 8601日期字符串在上午0:00用JavaScript

var isoDate = 2013-10-01T09:00:00.000-04:00; 

當嘗試使用Date()函數,日期更改時區,以我的本地格式的日期時區(注意它是如何08:00代替09:00

Date.fromISOString(isoDate); /* Returns: Tue Oct 01 2013 08:00:00 GMT-0500 (Central Standard Time)*/ 

我想在-圓通完全保持當前字符串的原來的時區。我想輸出9PM

這樣做的最常規方法是什麼?

注意:我也嘗試使用datejs沒有運氣。嘗試以下返回一個空的結果:

Date.parse('2013-10-01T09:00:00.000-04:00') 

回答

0

使用new運算符,Date構造函數中,toISOString方法,以及多個字符串替換保留原始字符串:

var foo = "2013-10-01T09:00:00.000-04:00"; 
var bar = foo.substr(-6); 
var baz = foo.substr(11,2) 
var isoDate = new Date(foo).toISOString().replace("Z",bar).replace(/T../,"T"+baz); 
var hours = String(baz).concat(Number(baz) < 12 ? "PM" : "AM").replace(/^0/,"") 

參考

相關問題