@gib感謝您的Moment.js建議。這個小型圖書館真的幫助處理日期和JavaScript。
Moment.js解決了我原來的問題中描述的問題。當解析成新的Date()對象時,IE8將JSON ISO日期顯示爲NaN。
快速解決方案(包括moment.js在您的網頁,或將代碼複製到你的JS功能包括)
如果你只需要在您的網頁上的日期,從JSON ISO日期加載,做這樣的:
order_date = moment(data.OrderDate); //create a "moment" variable, from the "data" object in your JSON function in Protoype or jQuery, etc.
$('#divOrderDate).html(order_date.calendar()); //use Moment's relative date function to display "today", "yesterday", etc.
或
order_date = moment(data.OrderDate); //create a "moment" variable, from the "data" object in your JSON function in Protoype or jQuery, etc.
$('#divOrderDate).html(order_date.format('m/d/YYYY')); //use Moment's format function to display "2/6/2015" or "10/19/2014", etc.
如果你必須有一個日期()對象(說與jQu使用ery組件),請按照以下步驟成功填充JSON提供的ISO日期。 (假設你已經處理了處理你的JSON數據的功能。)
var ship_date = new Date(moment(data.ShipDate).format('m/d/YYYY')); //This will successfully parse the ISO date into JavaScript's Date() object working perfectly in FF, Chrome, and IE8.
//initialize your Calendar component with the "ship_date" variable, and you won't see NaN again.
它在IE7/8中不受支持。從時代或墊片開始使用毫秒。 – Esailija
我強烈推薦在這裏使用DateJS ... –
另請參見:[哪些瀏覽器支持使用Date.parse解析ISO-8601 Date String?](http://stackoverflow.com/questions/5802461/javascript-which-browsers -support-parsing-of-iso-8601-date-string-with-date-par) –