Maison  >  Article  >  interface Web  >  Explication détaillée de la classe Date en javascript (exemple de code)

Explication détaillée de la classe Date en javascript (exemple de code)

不言
不言original
2018-09-12 17:24:032002parcourir

Cet article vous apporte une explication détaillée (exemple de code) de la classe Date en JavaScript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

La date est un objet intégré important dans JS. Son instance est principalement utilisée pour traiter l'heure et la date. Son heure est basée sur le nombre de millisecondes depuis 1970-1-1 (Universal Standard Time). la longueur de l'horodatage est de 13 bits (contrairement aux horodatages Unix qui font 10 bits). Pour les dates et les heures, nous disposons d’innombrables scénarios d’utilisation, nous devons donc accorder une attention particulière à certains détails et conventions.

1. Le constructeur

peut être instancié via new Date() pour obtenir une instance d'objet Date. Il convient de noter que si Date() est exécuté directement, une chaîne de temps sera obtenue. .

new Date();
new Date(value);
new Date(dateString);
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);

9918a60989ece9c0e9fb9608baca383f

La description du paramètre du constructeur (voir MDN) :

  • Si Si aucun paramètre n'est saisi, le constructeur Date créera un objet Date basé sur l'heure actuelle définie par le système.

  • Si au moins deux paramètres sont fournis, les paramètres restants seront fixés à 1 (si aucun paramètre de jour n'est fourni) ou à 0 par défaut.

  • Le temps JavaScript commence le 1er janvier 1970, temps universel (UTC), mesuré en millisecondes, et un jour comprend 86 400 000 millisecondes. La plage des objets Date est comprise entre -100 000 000 jours et 100 000 000 jours (valeurs équivalentes en millisecondes).

  • L'objet Date de JavaScript offre un comportement unifié sur toutes les plateformes. L'attribut time peut représenter le même moment dans différents systèmes, et si un objet heure locale est utilisé, il reflète l'heure locale.

  • L'objet Date de JavaScript fournit plusieurs méthodes d'heure UTC et fournit également des méthodes d'heure locale en conséquence. UTC, que nous appelons l'heure de Greenwich, fait référence à l'heure mondiale. L'heure locale fait référence à l'heure définie par l'ordinateur client exécutant JavaScript.

  • L'appel de l'objet Date de JavaScript en tant que fonction (c'est-à-dire sans utiliser l'opérateur new) renverra une chaîne représentant la date et l'heure actuelles.

2. Traitement des valeurs nulles

// 以chrome为例
new Date();
// Mon Oct 23 2017 23:38:02 GMT+0800 (CST)

new Date(false);
// Thu Jan 01 1970 08:00:00 GMT+0800 (CST)

new Date(0);
// Thu Jan 01 1970 08:00:00 GMT+0800 (CST)

new Date(null);
// Thu Jan 01 1970 08:00:00 GMT+0800 (CST)

new Date('');
// Invalid Date

new Date(undefined);
// Invalid Date

3. Rappel spécial

[Firefox]

ne prend pas en charge '- ' L'heure complète, telle que new Date('2012-07-08 00:00:00') est une valeur non valide, tandis que new Date('2012-07-08') est une valeur correcte.

[mois]

  • Le mois en nouvelle Date(année, mois, …) commence à 0

4. Limites de valeurs

Les valeurs limites​​sont différentes selon les environnements d'exécution​​Même les valeurs négatives​​peuvent être prises en charge sous Chrome. Dans un environnement de production réel, nous devons non seulement prendre en compte l'affichage de l'heure, mais également son stockage, son calcul, etc. Par conséquent, dans des scénarios spécifiques, nous devons autant que possible prendre en compte la plage valide de Date dans la base de données et le navigateur. .

En prenant la base de données Derby temps de stockage comme exemple, sa limite est :

说明 边界值
最小的日期 0001-01-01
最大的日期 9999-12-31
最小的时间 00:00:00
最大的时间 24:00:00
最小的时间戳 0001-01-01-00.00.00.000000
最大的时间戳 9999-12-31-23.59.59.999999

Dans mysql, sa plage est définie comme 1000-01-01à9999-12-31
Dans js, la valeur minimale de l'horodatage est -8640000000000000, qui est le 20 avril 271 821 avant JC, et le maximum La valeur est 8640000000000000, soit le 13 septembre 275 760. La plage horaire indiquée dans la spécification est de 100,000,000 jours avant et après le 1/1/1970.

5. Bug de l'année 2038

J'ai entendu dire que les horodatages ne suffisent pas après 2038.

Sur les applications informatiques, le problème de l'année 2038 peut empêcher certains logiciels de fonctionner correctement en 2038. Tous les programmes qui utilisent l'heure UNIX pour représenter l'heure seront affectés par cela car ils représentent le temps en termes de secondes écoulées depuis le 1er janvier 1970 (en ignorant les secondes intercalaires). Cette représentation temporelle est une norme sur les systèmes d'exploitation de type Unix et affecte les logiciels développés dans le langage de programmation C pour être utilisés sur la plupart des autres systèmes d'exploitation. Sur la plupart des systèmes d'exploitation 32 bits, le modèle de données « time_t » utilise un entier signé de 32 bits (signedint32) pour stocker le nombre de secondes calculé. Selon la norme "time_t", la dernière heure pouvant être représentée dans ce format est le mardi 19 janvier 2038, 03:14:07 (UTC). Au-delà de ce moment, le temps sera bouclé et représenté en interne sous la forme d'un nombre négatif, ce qui empêchera les programmes de fonctionner car ils ne reconnaîtront pas ce temps comme étant 2038 et pourront revenir en arrière en fonction de la mise en œuvre. Des calculs et des actions erronés peuvent en résulter.

7. Bibliothèque

  • moment - une bibliothèque de traitement du temps lourde qui prend en charge l'analyse du temps, le formatage, le calcul, etc. Elle est puissante et prend en charge les navigateurs et Node.js. Environ 16,3 Ko

  • date-fns - une bibliothèque de traitement d'événements plus légère que moment, de plus petite taille

  • dayjs - plus léger Magnitude moment.js

Recommandations associées :

Exemple de partage de code de la classe Date d'encapsulation en javascript

Javascript DOM exemple de code explication détaillée

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!

Déclaration:
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