Constructeur de date JavaScript : dévoilement de l'argument du mois de base zéro
Lors de la création d'un objet Date JavaScript, vous avez peut-être remarqué que l'argument du mois part de 0 au lieu de 1. Cette particularité peut prêter à confusion, d'autant plus que l'argument du jour du mois est basé sur 1. Pourquoi cet écart est-il présent, et y a-t-il une raison logique derrière cela ?
La réponse réside dans l'évolution historique du constructeur Date de JavaScript. Comme Brendan Eich, le créateur de JavaScript, l'a expliqué sur Twitter, JavaScript's Date a été inspiré par java.util.Date de Java, qui utilisait également un système de mois en base zéro.
À l'origine, JavaScript visait à émuler l'API de Java pour faciliter la compatibilité entre les langues. Malheureusement, cela signifiait hériter de bizarreries comme l’argument du mois de base zéro. Ken Smith de Netscape a aidé à porter le code Java en C pour l'implémentation de JavaScript.
Malgré le choix de conception initial, les développeurs ont depuis longtemps reconnu les inconvénients de ce système base zéro. La classe java.util.Calendar introduite dans Java 1.1 fournissait une meilleure API date/heure, mais elle maintenait toujours la convention du mois de base zéro.
JavaScript manquait d'une API date/heure robuste et intégrée, laissant les développeurs s'appuyer sur des bibliothèques tierces comme Luxon, Moment.js et date-fns. Ces bibliothèques répondent aux limites de l'objet Date et offrent une gestion des dates plus intuitive.
La proposition TC39 Temporal vise à remédier à cette lacune en introduisant une API date/heure moderne dans JavaScript. Cette proposition, si elle est mise en œuvre, mettrait la gestion des dates de JavaScript à jour avec les meilleures pratiques actuelles, offrant ainsi une approche plus cohérente et conviviale.
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!