Sto provando a scrivere del codice javascript per formattare una data come voglio, ma ho problemi a farlo funzionare su Firefox (funziona come voglio su Chrome).Javascript Data da una stringa con output diverso da Chrome a Firefox
L'input che ho in un modulo è 05/01/13
(mm/gg/aa) e voglio 2013-05-01
(aaaa/mm/gg).
Per questo, quello che ho fatto è qualcosa di simile:
var formDate = document.getElementById("start").value;
var myDate = new Date(formDate);
var startDate = new Date();
startDate.setMonth(myDate.getMonth() + 1);
startDate.setFullYear(myDate.getFullYear());
var FormattedDate = startDate.getFullYear() + "-" + ((startDate.getMonth() <= 10) ? "0" : "") + startDate.getMonth() + "-01"; // the day is always 01
alert(FormattedDate);
si può provare su entrambi i browser qui: http://jsfiddle.net/j4BLH/
Su Google Chrome, questo codice mi dà per esempio 2013-05-01
per maggio, ma su Firefox, ho 1913-05-01
.
So che avrei potuto scrivere qualcosa come "20" + startDate.getYear()
ma mi chiedevo perché i risultati erano diversi da Chrome a Firefox? E forse se hai un modo migliore di scrivere il codice che ho incollato qui, per favore fammi sapere :)
Grazie!
Guarda questa discussione: http://stackoverflow.com/questions/8681534/why-does-javascript-evaluate-a-2-digit-year-of-00-as-1900-instead-of-2000 – MasNotsram
Sembra che firefox stia facendo qualcosa di strano, dato che la data viene memorizzata internamente in millisecondi da epoca (1970). Quindi, non dovrebbe mai restituire 1913. [(Riferimento ECMAScript)] (http://objjob.phrogz.net/js/object/224) –
@SpAm grazie per il collegamento, ma in realtà non spiega perché Chrome e Firefox avere comportamenti diversi su questo. –