@gib Спасибо за предложение по Moment.js. Эта небольшая библиотека действительно помогает при работе с датами и JavaScript.
Moment.js решил проблему, описанную в исходном вопросе, который у меня тоже был. IE8 отображал даты JSON ISO как NaN при анализе в новый объект Date().
Быстрое решение (включите 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.
or
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.
Если у вас должен быть объект Date() (например, для использования с компонентами jQuery), выполните следующие действия, чтобы успешно заполнить предоставленную 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.
person
William Smith
schedule
28.09.2014