Maison >interface Web >js tutoriel >Comment faire fonctionner l'objet date dans JS

Comment faire fonctionner l'objet date dans JS

php中世界最好的语言
php中世界最好的语言original
2017-12-02 10:30:421524parcourir

Date est similaire à Array en js, les deux sont des objets spéciaux avec leurs propres méthodes spéciales.

Comme je n’utilise pas beaucoup Date, ma compréhension est assez superficielle. La semaine dernière, on m'a demandé comment obtenir le nombre de jours dans un certain mois d'une certaine année. J'y ai réfléchi pendant un moment et j'ai répondu qu'il existe deux types : l'un consiste à écrire moi-même la logique du jugement des années bissextiles. le nombre de jours de chaque mois est stocké dans un tableau dans deux situations. Il utilise les caractéristiques de l'objet js Date (en fait il l'a résumé...). Mais je ne peux pas vous dire exactement quelles fonctionnalités sont utilisées. Maintenant que j’y pense, apprenons-le et résumons-le.

Série de dates get et set

(Remarque : l'heure de référence spécifique de getTime() est 8:00:00 le 1er janvier 1970)

Tous les ensembles Il y a série get correspondante.

Il convient de noter que tous les get et set doivent initialiser une instance et l'appeler en tant qu'attribut de l'instance. Tels que :

C'est en fait très simple à comprendre. Après tout, si vous souhaitez définir ou renvoyer la valeur d'un objet Date, il doit d'abord valoir la peine d'exister. La manière standard d'écrire est var date=new Date(2015,7,30);date.getDate()

Si aucun paramètre n'est transmis dans new Date() et qu'aucune méthode de série définie n'est utilisée, alors Fait référence à la valeur actuelle (horloge informatique locale), y compris les heures, les minutes et les secondes. Cette fonctionnalité peut être facilement utilisée dans js pour afficher l'heure actuelle sous n'importe quelle forme.

var date = new Date(),
    nowYear = date.getFullYear(),
    nowMonth = date.getMonth() + 1,  //注意getMonth从0开始,getDay()也是(此时0代表星期日)
    nowDay = date.getDate(),
    nowHour = date.getHours(),
    nowMinute = date.getMinutes(),
    nowSecond = date.getSeconds(),
    weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
    nowWeek = weekday[date.getDay()];
console.log(nowYear + '年' + nowMonth + '月' + nowDay + '日' + nowHour + '时' + nowMinute + '分' + nowSecond + '秒' + nowWeek);

De même, vous pouvez facilement créer des effets d'horloge en utilisant les méthodes de rappel intégrées setInterval ou setTimeout.

Tout d'abord, chaque objet a valueOf() (obtient la valeur réelle) et toString() (obtient la valeur sous forme de chaîne). Notez la différence dans la case rouge.

 toTimeString() : Convertit la partie heure de l'objet Date en une chaîne et la renvoie, il doit donc y avoir un paramètre d'heure et une instance,

 toDateString() : Convertit la partie date de l'objet Date dans String et renvoyé, il doit y avoir une instance.

Parse() : renvoie le nombre de millisecondes entre 8h00 le 1er janvier 1970 et la date spécifiée (chaîne), avec une précision en secondes. Il ne peut être appelé que sous la forme de Date.parse (instance Date). (Faites attention à comparer getTime(), précis en millisecondes.)

 toSource() : renvoie le code source.

Remarque : toLocaleString : convertissez l'objet Date en une chaîne selon le format de l'heure locale, correspondant à UTC et GMT. Cette méthode est obsolète à la fois dans Array et Date, alors ne vous en souciez plus. La série UTC est rarement utilisée, c'est-à-dire que le format est différent

Résumé des points de connaissance importants

Discussion sur les paramètres de la série définie

Les trois premiers paramètres de setFullYear. () sont utiles. Les heures, les minutes et les secondes sont toujours locales ~~~

Pour les autres séries définies, seul le premier paramètre est utile et la valeur de retour est basée sur new Date() (heure actuelle) plus. Mois/Date/Minutes * correspondant au premier paramètre.

Définir l'heure complète

Évidemment, setTime est également une série définie, elle n'ajoute donc que 1992 millisecondes à celle d'origine (affichée sous forme de 1). Parce que setTime est spécial, il a été testé à 8 heures du matin le 1er janvier 1970 (FF, Chrome, IE5+, Opera (safari n'est pas assez utilisé donc je ne l'ai pas testé) bien que w3School ait dit qu'il était 0 heures, tester la nouvelle Date ( 1970,0,1,8,0,0).getTime() est évidemment affiché comme 0), donc avant l'exécution réelle, l'instance de date n'est plus l'heure actuelle correspondant à new Date() , mais il y a un processus de conversion en temps de base. La valeur affichée est donc 1970,0,1,8,0,1. Si 1992 est remplacé par 5000, ce sera 1970,0,1,8,0,5.

Quant à la méthode de réglage de l'heure complète, transmettez les paramètres de l'heure qui doivent être réglés lors de l'utilisation du nouvel objet Date. Il peut s'agir de 1992, 10, 3, 10, 2, 50 (vous pouvez également ajouter des millisecondes, puis utiliser getTime() pour le détecter, mais il n'est généralement pas utilisé) sous forme numérique (représentant 10h02 le 3 novembre). , 1992 50 secondes), ou il peut être au format de chaîne standard (mais il n'est généralement pas écrit comme ça~~~).

    getDate()

Habituellement placé à l'arrière pour la finale, hehe.

En tant que série get, en plus du nombre de paramètres, la valeur des paramètres est également très particulière. Répondez d'abord à la question d'origine et obtenez le nombre maximum de jours dans un certain mois d'une certaine année (ce qui peut être compris comme juger une année bissextile ~).

new Date(2014,2,0).getDate();     //返回2014年2月份的最后一天(28)

Lorsque le troisième paramètre est 0, il renvoie en fait le dernier jour du mois précédent (à noter que le chiffre 2 du mois est en réalité mars, donc le code renvoie le dernier jour de février. nombre dans le mois en cours). Voir plus d'exemples

Copier le code

new Date(2014,1,30).getDate();     //返回2014年3月2日在3月份中的天数(2)
new Date(2014,2,-1).getDate();     //返回2014年2月份的倒数第二天(27)

//Lorsque les paramètres sont manquants, afficher 1

new Date(2014,8).getDate(); 
new Date(14,18).getDate(); 
new Date(180).getDate();

//Lorsque les paramètres sont redondants, ils sont redondants Cela ne fonctionne pas (aucune opération sur les arguments[3+] n'est définie)

new Date(2015,2,0,2).getDate();

Copier le code

S'il y a trop de jours, il calculera automatiquement le le mois prochain. Si le nombre de jours est négatif, il augmentera. S'il y a trop peu de paramètres, il y aura un problème. S'il y a trop de paramètres, les pièces supplémentaires n'auront aucun effet. Par rapport à d'autres séries d'ensembles, c'est presque la même chose que l'idée de mise en œuvre. Vous le saurez en regardant (2).

Les objets horaires sous la forme de new Date('xxxx/xx/xx xx:xx:xx') peuvent être correctement reconnus sur les systèmes IOS et Andriod, et les objets horaires sous la forme de new Date(' xxxx-xx- Les objets temporels sous la forme de xx xx:xx:xx') ne peuvent pas être correctement reconnus sur le système iOS et nécessitent une couche de conversion.

function parseDate(dateStr) {
  if (!dateStr) {
    return new Date();
  }
 
  if (dateStr.indexOf('/') > -1) {
    return new Date(dateStr);
  } else {
    return new Date(dateStr.replace(/-/g, '/'));
  }
}

Je pense que vous maîtrisez les méthodes après avoir lu ces cas. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture connexe :

Comment définir la couleur de la police du texte en CSS

Comment définir la couleur de la police du texte en CSS

en CSS Différences dans les types de modèles de boîtes

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