แยกไปที่ "-"
แยกสตริงเป็นส่วนที่คุณต้องการ:
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
ใช้ regex
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
ทำไมไม่ใช้ regex
เพราะคุณรู้ว่าคุณกำลังทำงานกับสตริงที่ประกอบด้วยสามส่วนคั่นด้วยยัติภังค์
อย่างไรก็ตามหากคุณกำลังมองหาสตริงเดียวกันภายในสตริงอื่น regex จะเป็นวิธีที่จะไป
นำมาใช้ใหม่
เนื่องจากคุณกำลังทำสิ่งนี้มากกว่าหนึ่งครั้งในโค้ดตัวอย่างของคุณและอาจจะอยู่ที่อื่นในฐานรหัสของคุณให้รวมไว้ในฟังก์ชัน:
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)
}