Podzielone na "-"
Parsuj ciąg w potrzebne części:
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
Użyj wyrażenia regularnego
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
Dlaczego nie użyć wyrażenia regularnego?
Ponieważ wiesz, że będziesz pracował na sznurku złożonym z trzech części, oddzielonych łącznikami.
Jeśli jednak szukałeś tego samego ciągu w innym ciągu, regex byłby dobrym rozwiązaniem.
Ponowne użycie
Ponieważ robisz to więcej niż raz w przykładowym kodzie, a może gdzie indziej w bazie kodu, zawiń go w funkcji:
function toDate(dateStr) {
var parts = dateStr.split("-")
return new Date(parts[2], parts[1] - 1, parts[0])
}
Używając jako:
var from = $("#datepicker").val()
var to = $("#datepickertwo").val()
var f = toDate(from)
var t = toDate(to)
Lub jeśli nie masz nic przeciwko jQuery w swojej funkcji:
function toDate(selector) {
var from = $(selector).val().split("-")
return new Date(from[2], from[1] - 1, from[0])
}
Używając jako:
var f = toDate("#datepicker")
var t = toDate("#datepickertwo")
Nowoczesny JavaScript
Jeśli jesteś w stanie użyć bardziej nowoczesnego JS, restrukturyzacja tablicy jest również miłym akcentem:
const toDate = (dateStr) => {
const [day, month, year] = dateStr.split("-")
return new Date(year, month - 1, day)
}