Mentre il valore 2013-05-12 20:00:00
è uno diversi formati validi specificati dal ISO8601, è meglio utilizzare il profilo definito in RFC3339, che è un sottoinsieme di ISO8601.
Ciò significa che è necessario disporre sia del separatore T
sia di un offset del fuso orario, che può essere numerico o Z
per specificare UTC. In altre parole, è necessario utilizzare un valore come 2013-05-12T20:00:00-07:00
o l'equivalente 2013-05-13T03:00:00Z
.
Ora che si disponga o meno di un valore di input formattato correttamente, viene visualizzato il problema della compatibilità del browser. Tutti i browser moderni supportano ISO8601, ma alcuni lo interpretano in modo diverso. Ad esempio, in Google Chrome, se ometti lo T
, viene analizzato come ora locale anche se alla fine c'è un Z
. In Internet Explorer, lo stesso valore con omissione di T
restituisce un errore di data non valido.
Un approccio migliore consiste nell'utilizzare una libreria che astrae queste differenze, in modo che sia possibile concentrarsi sull'applicazione e non sulle stranezze del browser. La migliore libreria che conosco per questo è moment.js. Oltre al pieno supporto per le date ISO, è possibile analizzare l'input in qualsiasi modo desiderato con stringhe di formato personalizzate. Ha anche molte altre caratteristiche. Ti incoraggio molto a dare un'occhiata.
Utilizzando moment.js, è possibile effettuare le seguenti operazioni:
// from a full date-time-offset ISO8601/RFC3339 value
var m = moment('2013-05-12T20:00:00-07:00');
// or from your custom value, with explicit formatting
// this will assume the local time zone because you didn't specify one
var m = moment('2013-05-12 20:00:00','YYYY-MM-DD HH:mm:ss');
// then you can output it in a custom format if you like
m.format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Sunday, May 12th 2013, 8:00:00 pm"
Per quanto ne so, moment.js opere in tutti i browser - inclusi quelli più vecchi come IE6.
fonte
2013-05-18 03:16:41
Moment.JS è Awesum –
sono d'accordo [moment.js] (http://momentjs.com/) gli indirizzi di utilizzo di questi problemi. –