Aufgeteilt auf "-"
Analysieren Sie den String in die Teile, die Sie benötigen:
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
Verwenden Sie Regex
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
Warum nicht Regex verwenden?
Weil Sie wissen, dass Sie an einer Zeichenfolge arbeiten, die aus drei Teilen besteht, die durch Bindestriche getrennt sind.
Wenn Sie jedoch nach derselben Zeichenfolge in einer anderen Zeichenfolge suchen, ist Regex der richtige Weg.
Wiederverwendung
Da Sie dies mehr als einmal in Ihrem Beispielcode und möglicherweise an anderer Stelle in Ihrer Codebasis tun, schließen Sie es in eine Funktion ein:
function toDate(dateStr) {
var parts = dateStr.split("-")
return new Date(parts[2], parts[1] - 1, parts[0])
}
Verwenden als:
var from = $("#datepicker").val()
var to = $("#datepickertwo").val()
var f = toDate(from)
var t = toDate(to)
Oder wenn Ihnen jQuery in Ihrer Funktion nichts ausmacht:
function toDate(selector) {
var from = $(selector).val().split("-")
return new Date(from[2], from[1] - 1, from[0])
}
Verwenden als:
var f = toDate("#datepicker")
var t = toDate("#datepickertwo")
Modernes JavaScript
Wenn Sie moderneres JS verwenden können, ist die Array-Destrukturierung auch eine nette Geste:
const toDate = (dateStr) => {
const [day, month, year] = dateStr.split("-")
return new Date(year, month - 1, day)
}