La date et l'heure sont des cours obligatoires qui ne peuvent être contournés dans le processus de programmation. Heureusement JavaScript
a préparé pour nous un objet intégré Date (date). Grâce à cet objet, nous pouvons créer, stocker, modifier, mesurer le temps, imprimer et d'autres opérations de base. C'est l'un des cours obligatoires pour tout programmeur JavaScript
.
est la même que celle des objets ordinaires. Nous pouvons utiliser new Date()
pour créer un objet Date
, et nous pouvons également transmettre certains paramètres d'initialisation lors de la création.
sans paramètres :
let now = new Date()console.log(now)
Les résultats de l'exécution du code sont les suivants :
Cela affiche simplement l'heure précise à laquelle le code est exécuté. Ce qui est affiché ici est 2022年6月22日19点25份24秒
.
crée un objet date avec des paramètres millisecondes, où milliseconds
fait référence au nombre de millisecondes depuis UTC+0 le 1er janvier 1970 (1 milliseconde = 1/1000 secondes).
//Créez une heure, par exemple 1970.1.1, point 0 milliseconde soit jan01_1970 = new Date(0) console.log(jan01_1970) //Créer une heure 3 jours plus tard que l'heure 1,1 de 1970 (3 jours * 24 heures * 3 600 secondes * 1 000 millisecondes) soit jan04_1970 = nouvelle date (3 * 24 * 3600 * 1000)Résultats de l'exécution du code
Console.log(jan04_1970)
:
milliseconds
sont le nombre de millisecondes écoulées depuis 00:00:00 le 1er janvier 1970, ou cela s'appelle un horodatage .
L'horodatage est une simple représentation numérique de la date. Nous utilisons généralement new Date(milliseconds)
pour créer une date. Si nous avons déjà un objet Date
, nous pouvons utiliser date.getTime()
pour obtenir l'horodatage correspondant à la date.
Remarque :
La Chine est dans la zone 8, donc l'heure dans l'exemple ci-dessus n'est pas 00:00:00, mais 08:00:00,
L'horodatage n'est pas seulement un entier, il peut également s'agir d'un nombre négatif, par exemple :
//1969-12-31 00:00:00let dec31_1969 = new Date(-24 * 3600 * 1000)console.log(dec31_1969)
code résultat de l'exécution :
Siutilise un horodatage à chaque fois qu'il est créé, cela peut ne pas être pratique, car le calcul de l'horodatage est encore un peu difficile.
Nous pouvons également utiliser une chaîne d'heure pour créer une heure, par exemple :
let date = new Date('2022-06-22 00:00:00') console.log(date)
résultats de l'exécution du code :
year
—— doit être un nombre à quatre chiffresmonth
—— [0,11]
, 0
signifie janvier1
;hours/minutes/sec/ms
- la valeur par défaut est 0 ;par exemple :
let date = new Date(2022,6,22,20,35,33)console.log(date)
résultats de l'exécution du code :
On peut aussi préciser le nombre de millisecondes :
let date = new Date(2022,6,22,20,35,33,777)console.log(date)
Si on a un objet Date
, on peut passer le construit -in méthode de Date
, récupère une partie du temps, telle que l'année, le mois, la date, etc.
Par exemple, nous avons date
:
let date = new Date(2022,5,22,20,35,33)
getFullYear()
obtient l'année, date.getFullYear()
renvoie 2022
getMonth()
mois, date.getMonth()
renvoie 5
, qui est 6
;getDate()
obtient la date du mois en cours, date.getDate()
renvoie 22
;getDay()
obtient le jour de la semaine où se trouve l'heure actuelle, date.getDay()
renvoie 3
;Remarque :
- les dates ci-dessus sont toutes basées sur des dates locales. Par exemple, je suis dans le fuseau horaire de la Chine,
- vous devez utiliser
getFullYear
pour renvoyer l'getYear
à deux chiffres.
Nous pouvons également obtenir l'heure dans le fuseau horaire 0
, qui est l'heure UTC
, correspondant à getUTCFullYear()
et getUTCMonth()
, getUTCDay
, etc. Insérez simplement UTC
après get
.
Par exemple :
let date = new Date(2022,5,22,20,35,33)console.log(date.getHours(),date.getUTCHours())
résultats de l'exécution du code :
On peut également voir la nuit que la différence entre le fuseau horaire de la Chine et le fuseau horaire 0
est de 8
heures.
getTime()
renvoie l'horodatage de la date et la méthode n'a pas de mode UTC
;getTimezoneOffset()
renvoie le décalage horaire entre le fuseau horaire local et le fuseau horaire 0
, en minutes, et il n'y a pas de mode UTC
nous pouvons également définir la date via la méthode de Date
. Une certaine partie de :
setFullYear(year, [month], [date])
définit l'année (mois, jour)setMonth(month, [date])
définit le mois (jour)setDate(date)
définit la date (le jour du mois)setHours(hour, [min], [sec], [ms])
Définir les heures (minutes, secondes, millisecondes)setMinutes(min, [sec], [ms])
Définir les minutes (secondes, millisecondes)setSeconds(sec, [ms])
Définir les secondes (millisecondes)setMilliseconds(ms)
Définir les millisecondessetTime(milliseconds)
(utiliser le nombre de millisecondes depuis 1970-01-01 00:00:00 UTC+0
pour définir la date entière)Parmi les fonctions ci-dessus, seul setTime()
ne varie pas UTC
.
JavaScript
's Date
dispose d'une fonction de calibrage automatique, ce qui nous offre une grande commodité dans le calcul du temps.
Par exemple :
let date = new Date(2022,5,38)//Notez les résultats d'exécution du code 38console.log(date) ici
:
D'après les résultats de l'exécution, nous pouvons voir que le « 38 juin 2022 » n'a pas provoqué d'erreur dans le programme, mais a converti la date en « 8 juillet 2022 ».
Le cas ci-dessus a vérifié qu'en JavaScript
, les dates en dehors de la plage seront automatiquement attribuées par l'objet Date
. De cette façon, nous pouvons utiliser Date
pour calculer les dates de manière très pratique.
Par exemple, nous pouvons ajouter et soustraire l'année, le mois et le jour à la date :
let date = new Date(2022,5,23)//L'heure actuelle est 2022-6-23date.setDate(date.getDate() + 8)//Calculez le délai après huit jours
de résultats d'exécution du code console.log(date) :
De même, nous pouvons également utiliser la méthode date.setSeconds()
pour calculer la date en secondes.
et Date
de date est le même que la valeur de retour de date.getTime()
, qui est une valeur en millisecondes :
let date = new Date()console.log(+date)
code Résultat de l'exécution :
Puisque l’essence du temps est un nombre, nous pouvons également effectuer des calculs de décalage horaire en ms
(millisecondes).
Par exemple :
let date1 = new Date(2022,5,23)let date2 = new Date(2022,5,24)console.log(`Le décalage horaire est ${date2-date1}ms`)
Le résultat de l'exécution du code est :
Si nous voulons obtenir l'heure actuelle, une meilleure approche consiste à utiliser la méthode Date.now()
. Cette méthode renverra l'horodatage de l'heure actuelle sans créer d'objets Date
supplémentaires, ce qui est bon pour la surcharge de mémoire et le garbage collection, et le code est plus simple.
Par exemple :
let start = Date.now()for(let i = 1;i<100000;i++){ let num = i * i * i;}let end = Date.now()console.log(`consume time ${end - begin}ms`)
résultats de l'exécution du code :
La méthode Date.parse()
peut lire une chaîne de date et la convertir en horodatage, mais la chaîne doit respecter certaines règles : YYYY-MM-DDTHH:mm:ss.sssZ
.
YYYY-MM-DD
correspond à年-月-日
T
appartient au délimiteurHH:mm:ss.sss
correspond à时:分:秒.毫秒
Z
peut être un fuseau horaire au format +-hh:mm
. Un seul caractère Z
représente une chaîne UTC+0
qui peut être écrite de manière abrégée, par exemple : YYYY-MM-DD
, YYYY-MM
, YYYY
.
Pour vous donner un petit conseil :
let ms = Date.parse('2022-06-23T19:38:30.777+08:00')//Time stamp let date = new Date(ms)console.log(date)
exécution du code résultat:
JavaScript
utilise Date
pour traiter l'heure : new Date()
;Date
a de nombreuses méthodes pratiques, et nous pouvons obtenir qu'une certaine période de tempsDate
automatiquement calibréeDate.now()
peut obtenir efficacement l'heure actuelle ;