Ich benutze die JavaScript-Funktion der Date-Klasse toLocaleDateString() in einem Projekt, um die richtige Formatierung entsprechend dem Gebietsschema des Benutzers zu erhalten, so einfach. Der Tag des Monats ist jedoch nicht immer richtig (es ist manchmal ein Tag weniger als erwartet). Ich kann nicht verstehen, warum das passiert.Falsches Datum mit JavaScript-Funktion toLocaleDateString()
Ich baute eine jfiddle, um das Problem zu zeigen. Es tritt mit dem Monat Oktober auf. Das Datum 3 sein sollte wie in allen anderen Monaten, aber irgendwie ist es 2.
https://jsfiddle.net/vincepunkrock/nh1u3ord/
Hier ist der wichtige Teil des Codes ist und das Ergebnis (Mein locale ist ‚de‘):
for(var i = 0; i < 12; i++)
{
var d = new Date(1993,i,3);
var n = d.toLocaleDateString();
document.getElementById("demo").innerHTML += n + "<br>";
}
3.1.1993
3.2.1993
3.3.1993
3.4.1993
3.5.1993
3.6.1993
3.7.1993
3.8.1993
3.9.1993
2.10.1993
3.11.1993
3.12.1993
Habt ihr eine Vorstellung davon, was hier passiert und was kann ich tun, um es zu lösen?
Vielen Dank!
Wann endete "Sommerzeit" (oder "Sommerzeit") 1993 in Ihrem Land? – Pointy
Es war am Sept. 26.. In der Tat, wenn ich den Termin auf den 27. setze, bekomme ich den 26. für die Monate September und Oktober. Du warst auf dem richtigen Weg! –
"* ... um die richtige Formatierung entsprechend der Ländereinstellung des Benutzers zu erhalten ... *". Es gibt keine Garantie, dass dies geschieht, da * toLocaleDateString * vollständig von der Implementierung abhängig ist und einige Implementierungen die Benutzereinstellungen vollständig zu ignorieren scheinen. – RobG