Maison >interface Web >js tutoriel >Comment puis-je convertir une chaîne jj-mm-aaaa en un objet date JavaScript ?

Comment puis-je convertir une chaîne jj-mm-aaaa en un objet date JavaScript ?

DDD
DDDoriginal
2024-11-19 22:43:02801parcourir

How Can I Convert a dd-mm-yyyy String to a JavaScript Date Object?

Convertir la chaîne jj-mm-aaaa en date

L'impossibilité d'analyser une chaîne jj-mm-aaaa en un objet date valide à l'aide Le constructeur Date de JavaScript est principalement dû à la présence du symbole '-', qui n'est pas reconnu par le constructeur. Pour surmonter cela, des approches alternatives sont nécessaires.

Solution : Scinder sur "-"

Une solution consiste à diviser la chaîne en ses composants individuels à l'aide du '-' symbole comme délimiteur, puis créez un nouvel objet Date en utilisant les valeurs du jour, du mois et de l'année :

var from = $("#datepicker").val().split("-")
var f = new Date(from[2], from[1] - 1, from[0])

Solution : utilisez Regex

Les expressions régulières peuvent également être utilisé pour extraire les composants de date individuels et construire une chaîne de date valide :

var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "//"))

Recommandation : diviser sur "-"

Bien que les deux approches soient valides, la La méthode "split on -" est sans doute plus spécifique et efficace pour cette tâche particulière, car elle cible directement le format connu de la chaîne d'entrée sans s'appuyer sur une correspondance d'expression régulière potentiellement plus complexe.

Réutilisabilité

Si cette conversion est effectuée plusieurs fois dans le code, il est conseillé de l'encapsuler dans une fonction pour la réutilisabilité et la maintenabilité :

function toDate(dateStr) {
  var parts = dateStr.split("-")
  return new Date(parts[2], parts[1] - 1, parts[0])
}

Utilisation de la fonction :

var f = toDate($("#datepicker").val())
var t = toDate($("#datepickertwo").val())

JavaScript moderne

Pour les environnements JavaScript modernes, la déstructuration des tableaux peut simplifier le code :

const toDate = (dateStr) => {
  const [day, month, year] = dateStr.split("-")
  return new Date(year, month - 1, day)
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn