在"-"上分裂
解析字符串为你需要的部分:
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"))
为什么不用正则表达式?
因为您知道您将处理一个由三部分组成的字符串,由连字符隔开。
然而,如果你在另一个字符串中寻找相同的字符串,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)
}