Diviser sur "-"
Analysez la chaîne de caractères en fonction des parties dont vous avez besoin :
var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])
Utiliser une expression rationnelle
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"))
Pourquoi ne pas utiliser les regex ?
Parce que vous savez que vous allez travailler sur une chaîne composée de trois parties, séparées par des tirets.
Toutefois, si vous recherchez cette même chaîne dans une autre chaîne, les regex sont la solution.
Réutilisation
Parce que vous faites cela plus d'une fois dans votre code d'exemple, et peut-être ailleurs dans votre base de code, emballez-le dans une fonction :
function toDate(dateStr) {
var parts = dateStr.split("-")
return new Date(parts[2], parts[1] - 1, parts[0])
}
Utilisé comme :
var from = $("#datepicker").val()
var to = $("#datepickertwo").val()
var f = toDate(from)
var t = toDate(to)
Ou si ça ne vous dérange pas d'avoir du jQuery dans votre fonction :
function toDate(selector) {
var from = $(selector).val().split("-")
return new Date(from[2], from[1] - 1, from[0])
}
Utilisé comme :
var f = toDate("#datepicker")
var t = toDate("#datepickertwo")
JavaScript moderne
Si vous êtes en mesure d'utiliser un JS plus moderne, la déstructuration des tableaux est également une touche agréable :
const toDate = (dateStr) => {
const [day, month, year] = dateStr.split("-")
return new Date(year, month - 1, day)
}
0 votes
Cela se produit-il avec toutes les dates ou une en particulier ?