Dividersi "-"
Analizza la stringa nelle parti necessarie:
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
Usa regex
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
Perché non usare regex?
Perché sai che lavorerai su una stringa composta da tre parti, separate da trattini.
Tuttavia, se stavi cercando quella stessa stringa all'interno di un'altra stringa, regex sarebbe la strada da percorrere.
riutilizzo
Perché lo stai facendo più di una volta nel tuo codice di esempio, e forse altrove nella tua base di codice, avvolgilo in una funzione:
function toDate(dateStr) {
var parts = dateStr.split("-")
return new Date(parts[2], parts[1] - 1, parts[0])
}
Usando come:
var from = $("#datepicker").val()
var to = $("#datepickertwo").val()
var f = toDate(from)
var t = toDate(to)
O se non ti dispiace jQuery nella tua funzione:
function toDate(selector) {
var from = $(selector).val().split("-")
return new Date(from[2], from[1] - 1, from[0])
}
Usando come:
var f = toDate("#datepicker")
var t = toDate("#datepickertwo")
JavaScript moderno
Se sei in grado di utilizzare JS più moderni, la destrutturazione dell'array è anche un bel tocco:
const toDate = (dateStr) => {
const [day, month, year] = dateStr.split("-")
return new Date(year, month - 1, day)
}