「-」で分割
文字列を必要な部分に解析します。
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"))
なぜ正規表現を使わないのですか?
ハイフンで区切られた3つの部分で構成される文字列で作業していることがわかっているためです。
ただし、別の文字列内で同じ文字列を探している場合は、正規表現が適しています。
再利用
これをサンプルコードで、そしておそらくコードベースの別の場所で2回以上実行しているため、関数でラップします。
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)
}