Correction automatique des dates en JavaScript
JavaScript a une fonctionnalité très intéressante et utile :
si un moment incorrect a été spécifié lors de la création de l'objet Date,
il sera automatiquement recalculé en un moment correct.
Regardons un exemple.
Comme vous le savez, la date du 35 janvier n'existe pas.
Le jour maximum possible en janvier est le 31.
Il s'avère que notre date du 35 janvier
a 4 jours en trop. JavaScript dans un tel
cas ajoutera simplement ces 4 jours excédentaires
au mois suivant :
let date = new Date(2018, 0, 35);
console.log(date); // donnera le 4 février
Il est possible de spécifier non seulement des jours excédentaires, mais
aussi des mois. Il faut cependant se rappeler que les mois
commencent à zéro, ce qui signifie que le dernier mois
correct est le 11. Si vous spécifiez le 12ème
mois, vous obtiendrez le janvier de l'année suivante :
let date = new Date(2018, 12, 1); // on spécifie le 12ème mois
console.log(date); // donnera le 1 janvier 2019
La correction décrite fonctionne également dans le sens
descendant. Comme vous le savez, le jour le plus bas
d'un mois est le jour numéro 1.
Par conséquent, si vous spécifiez le jour numéro 0,
vous obtiendrez le dernier jour du mois précédent :
let date = new Date(2018, 1, 0); // on spécifie le jour zéro
console.log(date); // donnera le 31 janvier
Il est également possible de spécifier des valeurs négatives
pour les jours et les mois. Il faut dans ce cas se rappeler que
le jour minimum a le numéro 1, et
le mois minimum a le numéro 0. Cela signifie
que le jour moins un correspondra au 2ème
jour en partant de la fin du mois précédent, et le mois
moins un correspondra simplement au dernier
mois de l'année précédente :
let date = new Date(2018, 1, -1); // on spécifie -1 jour
console.log(date); // donnera le 30 janvier
let date = new Date(2018, -1, 1); // on spécifie -1 mois
console.log(date); // donnera le 1 décembre 2017
Tout ce qui a été dit ci-dessus fonctionne de manière analogue avec les heures, les minutes et les secondes :
let date = new Date(2018, 0, 1, 24, 0, 0); // on spécifie la 24ème heure
console.log(date); // donnera le 2 janvier, 0 heure
let date = new Date(2018, 0, 1, 25, 0, 0); // on spécifie la 25ème heure
console.log(date); // donnera le 2 janvier, 1 heure
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 1, 35);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 15, 1);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 3, 31);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 1, 31);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 12, 33);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 33, 33);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 5, 0);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 0, 0);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, -12, -33);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // quelle sera la date ?
Déterminez à quelle date JavaScript transformera le moment suivant :
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // quelle sera la date ?