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
Libérer: 2024-11-19 22:43:02
original
808 Les gens l'ont consulté

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])
Copier après la connexion

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})/, "//"))
Copier après la connexion

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])
}
Copier après la connexion

Utilisation de la fonction :

var f = toDate($("#datepicker").val())
var t = toDate($("#datepickertwo").val())
Copier après la connexion

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)
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal