Avant-propos
Dans le développement Web, nous avons souvent besoin d'utiliser des dates. Par exemple : heure d'inscription des utilisateurs, heure de publication des articles, etc. JavaScript est un langage de programmation très couramment utilisé, nous utilisons donc souvent les fonctions de date de Javascript pour gérer les dates, telles que : getDate(), getMonth(), getFullYear(), etc. Cependant, dans les applications réelles, nous pouvons rencontrer de nombreux problèmes de formatage de date, notamment en ce qui concerne les formats d'heure et les environnements locaux dans différentes régions. Dans cet article, nous décrirons le problème du format de date JavaScript provoquant des erreurs et proposerons des solutions.
Question
Les objets Date en JavaScript peuvent être instanciés à l'aide de new Date(). Cependant, lorsque vous travaillez avec des dates, des problèmes peuvent survenir si le format correct n'est pas utilisé. Regardons l'exemple suivant :
var date = new Date('2022-06-10'); console.log(date);
Dans la plupart des cas, cet exemple convient car le format de date est séparé par '-' : année-mois-jour. Mais dans certains cas, si le format de date utilise d’autres délimiteurs, cela peut provoquer des erreurs. Par exemple, le code ci-dessus provoquera une erreur si les délimiteurs rouges « / » et « ». De plus, dans certaines régions, l’ordre de l’année, du mois et du jour peut être différent. Par exemple, en Chine, nous utilisons le format de date année-mois-jour, mais aux États-Unis, le format de date est mois/jour/année.
Solution
Pour éviter que le problème du format de date en JavaScript ne provoque des erreurs, vous devez spécifier le format de date. Nous pouvons utiliser la méthode format() de l'objet Intl.DateTimeFormat fourni par JavaScript pour formater :
var date = new Date('2022-06-10'); var formatter = new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'short', day: 'numeric' }); console.log(formatter.format(date)); // Jun 10, 2022
À l'aide de l'objet Intl.DateTimeFormat, le format de date peut être spécifié en fonction de la région et des paramètres régionaux. Dans cet exemple, nous utilisons « en-US », la langue locale des États-Unis, pour spécifier le format de l'année, du mois et du jour de la date.
Si vous estimez que l'objet Intl.DateTimeFormat n'est pas assez puissant, vous pouvez choisir d'utiliser certaines bibliothèques tierces, telles que moment.js, date-fns, etc. Ces bibliothèques fournissent non seulement un formatage de date plus riche, mais fournissent également des fonctions pratiques pour manipuler les dates, telles que add(), subtract(), format(), etc.
Si vous avez juste besoin de simplement valider le format de date, vous pouvez utiliser des expressions régulières. Par exemple, nous pouvons utiliser des expressions régulières pour vérifier le format de 'AAAA-MM-JJ' :
function isValidDate(dateString) { var regex = /^d{4}-d{2}-d{2}$/; return regex.test(dateString); }
Dans cette fonction, nous utilisons le /^d{4}-d{2}-d{2}$/ Regular expression Expression, où '^' signifie que la correspondance doit commencer au début de la chaîne, 'd' signifie correspondre aux nombres, 'd{4}' signifie correspondre à 4 nombres et '-' signifie correspondre au délimiteur '-'. Cette fonction renvoie vrai ou faux, selon que la chaîne est conforme au format « AAAA-MM-JJ ».
Conclusion
En JavaScript, le traitement des formats de date est un problème très gênant. Nous devons utiliser différents formats de date dans différents environnements linguistiques, différentes régions et différents scénarios d'application. Par conséquent, lors du traitement des dates, nous devons choisir la méthode de traitement la plus appropriée en fonction de la situation spécifique afin d'éviter les erreurs causées par le format de date JavaScript.
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!