Attenzione alle date sull'end point REST!

Ancora oggi mi e' capitato di incontrare codice che tratta male...

...le date ritornate dall'end point REST del CRM.

Per averci a che fare bisogna sapere che esso restituisce le date (quando lo si utilizza con jquery e json) in millisecondi. Espone cioè il numero di millisecondi della data ritornata trascorsi a partire dal primo gennaio 1970.

Per indicare che quello è una data e non un numero il valore viene racchiuso fra "/" inserendo il tipo come prefisso: ad esempio "/Date123432/".

Per codificare dunque correttamente il valore ritornato, bisogna eliminare le indicazioni sul tipo e creare un oggetto Date a partire dal numero di millisecondi.

Se si usa javascript una buona soluzione può essere rappresentata dalla seguente funzione.

GetODataDate: function(value) {
   var d=eval(value).toString();
   return new Date(parseInt(d.replace("/Date(", "").replace(")/", ""), 10));

Dettagli...