"-" üzerine böl
İpi ihtiyacınız olan parçalara ayrıştırın:
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
Normal ifadeyi kullan
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
Neden regex kullanılmıyor?
Çünkü, tire ile ayrılmış üç bölümden oluşan bir ip üzerinde çalışacağınızı biliyorsunuz.
Ancak, aynı dizeyi başka bir dizede aradıysanız, normal ifade gitmenin yolu olurdu.
Yeniden
Bunu örnek kodunuzda birden fazla kez yaptığınızdan ve kod tabanınızın başka bir yerinde yaptığınızdan, bir işlevde tamamlayın:
function toDate(dateStr) {
var parts = dateStr.split("-")
return new Date(parts[2], parts[1] - 1, parts[0])
}
Olarak kullanma:
var from = $("#datepicker").val()
var to = $("#datepickertwo").val()
var f = toDate(from)
var t = toDate(to)
Veya işlevinizde jQuery sakıncası yoksa:
function toDate(selector) {
var from = $(selector).val().split("-")
return new Date(from[2], from[1] - 1, from[0])
}
Olarak kullanma:
var f = toDate("#datepicker")
var t = toDate("#datepickertwo")
Modern JavaScript
Daha modern JS kullanabiliyorsanız, dizi imhası da hoş bir dokunuş:
const toDate = (dateStr) => {
const [day, month, year] = dateStr.split("-")
return new Date(year, month - 1, day)
}