@ Christoph eine Regex Mentions mit dem Problem zu begegnen. Hier ist, was ich verwende:
var dateString = "2010-08-09 01:02:03";
var reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
var dateArray = reggie.exec(dateString);
var dateObject = new Date(
(+dateArray[1]),
(+dateArray[2])-1, // Careful, month starts at 0!
(+dateArray[3]),
(+dateArray[4]),
(+dateArray[5]),
(+dateArray[6])
);
Es ist keineswegs intelligent, konfigurieren nur die Regex und new Date(blah)
an Ihre Bedürfnisse anzupassen.
Edit: Vielleicht ein bisschen mehr verständlich in ES6 mit Destrukturierung:
let dateString = "2010-08-09 01:02:03"
, reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/
, [, year, month, day, hours, minutes, seconds] = reggie.exec(dateString)
, dateObject = new Date(year, month-1, day, hours, minutes, seconds);
Aber in aller Ehrlichkeit in diesen Tagen ich für so etwas wie Moment erreichen
BTW Punkte und Bindestriche als Datumstrenn ausfallen können, Schrägstriche in Ordnung sind, so (an die Grenzen meiner Tests) wird Javascript akzeptieren „2011/08/22 10:30:00 "aber noch nicht (trotz ISO 8601)" 2011-09-02 15:58:40 "was - es wird behauptet - wird in Javascript 1.8.5 unterstützt. –
Date.parse-Funktion analysiert die Datumszeichenfolge im Format "MM/TT/JJJJ". Bitte konvertieren Sie die Zeichenfolge in das Format "MM/TT/JJJJ", bevor Sie Parse anwenden. –
Warum liefern Sie das Datum nicht im gewünschten Format? Ich mache es wie neu Datum ('2012 11 25 18:00:00'); und es funktioniert! – foxybagga