@gib Merci pour la suggestion sur Moment.js. Cette petite bibliothèque aide vraiment à gérer les dates et JavaScript.
Moment.js a résolu le problème décrit dans la question originale que je rencontrais également. IE8 affichait les dates ISO JSON comme étant NaN lorsqu'elles étaient analysées dans un nouvel objet Date().
Solution rapide (inclure moment.js dans votre page, ou copier le code dans l'inclusion de vos fonctions js)
Si vous avez simplement besoin d'afficher une date sur votre page, chargée à partir d'une date JSON ISO, procédez comme suit :
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.
o
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.
Si vous devez disposer d'un objet Date() (par exemple pour l'utiliser avec les composants jQuery), procédez comme suit afin de remplir avec succès votre date ISO fournie dans le JSON. (Cela suppose que vous êtes déjà dans la fonction de traitement de vos données 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.