Розділити на "-"
Розберіть рядок на потрібні вам частини:
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
Використовуйте регекс
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
Чому б не використовувати регулярний вираз?
Тому що ви знаєте, що будете працювати над струною, що складається з трьох частин, розділених дефісами.
Однак, якщо ви шукали ту саму строку в іншій рядку, регулярний вислів був би шлях.
Повторне використання
Оскільки ви робите це не раз у своєму зразковому коді, а може бути, і в іншому місці кодової бази, завершіть його у функції:
function toDate(dateStr) {
var parts = dateStr.split("-")
return new Date(parts[2], parts[1] - 1, parts[0])
}
Використання як:
var from = $("#datepicker").val()
var to = $("#datepickertwo").val()
var f = toDate(from)
var t = toDate(to)
Або якщо ви не заперечуєте проти jQuery у своїй функції:
function toDate(selector) {
var from = $(selector).val().split("-")
return new Date(from[2], from[1] - 1, from[0])
}
Використання як:
var f = toDate("#datepicker")
var t = toDate("#datepickertwo")
Сучасний JavaScript
Якщо ви можете використовувати більш сучасний JS, зруйнування масиву - це також приємний штрих:
const toDate = (dateStr) => {
const [day, month, year] = dateStr.split("-")
return new Date(year, month - 1, day)
}