Dividir em "-"
Analise a string nas partes necessárias:
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
Use regex
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
Por que não usar regex?
Porque você sabe que estará trabalhando em uma corda composta de três partes, separadas por hífens.
No entanto, se você estivesse procurando a mesma sequência dentro de outra, o regex seria o caminho a seguir.
Reuso
Como você está fazendo isso mais de uma vez no seu código de exemplo e talvez em outro lugar na sua base de código, envolva-o em uma função:
function toDate(dateStr) {
var parts = dateStr.split("-")
return new Date(parts[2], parts[1] - 1, parts[0])
}
Usando como:
var from = $("#datepicker").val()
var to = $("#datepickertwo").val()
var f = toDate(from)
var t = toDate(to)
Ou se você não se importa com o jQuery em sua função:
function toDate(selector) {
var from = $(selector).val().split("-")
return new Date(from[2], from[1] - 1, from[0])
}
Usando como:
var f = toDate("#datepicker")
var t = toDate("#datepickertwo")
JavaScript moderno
Se você é capaz de usar JS mais moderno, a destruição de matriz também é um toque agradável:
const toDate = (dateStr) => {
const [day, month, year] = dateStr.split("-")
return new Date(year, month - 1, day)
}