TT-MM-JJJJ-Zeichenfolge in Datum konvertieren
Die Unfähigkeit, eine TT-MM-JJJJ-Zeichenfolge in ein gültiges Datumsobjekt zu analysieren Der Datumskonstruktor von JavaScript ist hauptsächlich auf das Vorhandensein des Symbols „-“ zurückzuführen, das vom Konstruktor nicht erkannt wird. Um dies zu überwinden, sind alternative Ansätze erforderlich.
Lösung: Aufteilen nach „-“
Eine Lösung besteht darin, die Zeichenfolge mithilfe des „-“ in ihre einzelnen Komponenten aufzuteilen. Symbol als Trennzeichen und erstellen Sie dann ein neues Datumsobjekt mit den Werten Tag, Monat und Jahr:
var from = $("#datepicker").val().split("-") var f = new Date(from[2], from[1] - 1, from[0])
Lösung: Verwenden Regex
Reguläre Ausdrücke können auch verwendet werden, um die einzelnen Datumskomponenten zu extrahieren und eine gültige Datumszeichenfolge zu erstellen:
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "//"))
Empfehlung: Aufteilen nach „-“
Während beide Ansätze gültig sind, ist die „Split on –“-Methode für diese spezielle Aufgabe wohl spezifischer und effizienter als sie direkt zielt auf das bekannte Format der Eingabezeichenfolge ab, ohne sich auf einen möglicherweise komplexeren Regex-Abgleich zu verlassen.
Wiederverwendbarkeit
Wenn diese Konvertierung mehrmals im Code durchgeführt wird, ist dies ratsam um es zur Wiederverwendbarkeit und Wartbarkeit in eine Funktion zu kapseln:
function toDate(dateStr) { var parts = dateStr.split("-") return new Date(parts[2], parts[1] - 1, parts[0]) }
Verwenden der Funktion:
var f = toDate($("#datepicker").val()) var t = toDate($("#datepickertwo").val())
Modernes JavaScript
Für moderne JavaScript-Umgebungen kann Array-Destrukturierung den Code vereinfachen:
const toDate = (dateStr) => { const [day, month, year] = dateStr.split("-") return new Date(year, month - 1, day) }
Das obige ist der detaillierte Inhalt vonWie kann ich einen TT-MM-JJJJ-String in ein JavaScript-Datumsobjekt konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!