• JAVASCRIPT > les dates et le temps

      INITIALISATION

      var maDate = new Date();
      Sun Feb 08 1998 04:15:27 GMT+0000 (GMT)

      Durant tout le mémo, la variable sera nommée date.

       

      Date.now() renvoie le nombre de millisecondes écoulées depuis le 1er Janvier 1970 00:00:00 UTC.

       

      JJ pour le jour, MM le mois ( 0 = janvier !!! ), AAAA l’année, hh heure, mm minutes SS secondes.

       

      var date = new Date("AAAA-MM-JJThh:mm:ss");

      var date = new Date("1995-12-17T03:24:00");

       

      var date = new Date(AAAA,MM,JJ);
      var date = new Date(1995,11,17);

       

      var date = new Date(AAAA,MM,JJ,h,m,s);
      var date = new Date(1995,11,17,3,24,0);

      AFFICHAGE

      date.getDate() retourne le jour dans le mois ( 1 - 31 )
      date.getDay() retourne le jour de la semaine ( 0 - 6 ) ici, 0 = dimanche
      date.getFullYear() retourne l’année ( AAAA )
      date.getHours() retourne l’heure ( )
      date.getMilliseconds() retourne les millisecondes de la date ( )
      date.getMinutes() retourne les minutes ( )
      date.getMonth() retourne le numéro du mois ( 0 - 11 )

      date.getMonth()+1 retourne le numéro du mois pour les humains ( 1 - 12 )

      date.getSeconds() retourne les secondes ( )
      date.getTime() retourne la date en millisecondes ( )
      date.getTimezoneOffset() retourne le décalage horaire en minutes ( )
      date.getYear() retourne l’année sur 2 chiffres ( AA ) à éviter !

      date.toGMTString() retourne la date à l’heure GMT ( )

      nom du mois

      var tab_mois=new Array("Jan","Fév","Mar","Avr","Mai","Juin","Juil","Aoû","Sep","Oct","Nov","Déc");
      var nom_mois = tab_mois[date.getMonth()];

      NOM DU JOUR D’UNE DATE PRÉCISE

      var tab_jour = ("dim","lun","mar","mer","jeu","ven","sam");
      date = new Date( AAAA , MM , JJ );
      nomDuJour = tab_jour[date.getDay()];

      NOMBRE DE JOURS DANS LE MOIS

      function getNbJours(date){
         return new Date(date.getFullYear(), date.getMonth()+1, 0).getDate();
      }

      AFFICHER LA DATE OU L’HEURE EN TEMPS REEL

      Date() contient 4 fonctions qui permettent d’afficher l’heure et le jour selon les cas.

       

      toString() date en anglais, heure (hh:mm:ss) et fuseau horaire ;
      toTimeString() heure (hh:mm:ss) au format 24h si navigateur en français et fuseau horaire ;
      toLocaleString() date dans la langue du système, heure (hh:mm:ss) au format 24h si navigateur en français ;
      toLocaleTimeString() heure (hh:mm:ss) au format 24h si navigateur en français.

       

      Ex: afficher l’heure du système et la mettre à jour toutes les secondes:

       

      function horloge(){
         var tt = new Date().toLocaleTimeString(); // hh:mm:ss
         $("#timer").text(tt);
         setTimeout(horloge, 1000); // mise à jour du contenu "timer" toutes les secondes
      }

       

      La zone d’affichage : <div id="timer"></div>

       

      La fonction est appelée, par exemple, de la manière suivante : <body onload="horloge();">

      ASSIGNATION

      date.setDate() affecte la date du mois ( )

      date.setFullYear(AAAA, MM, JJ) affecte l’année de la date ( MM et JJ sont optionnels)
      date.setHours() affecte les heures ( )
      date.setMilliseconds() affecte les millisecondes de la date ( )
      date.setMinutes() affecte les minutes ( )
      date.setMonth() affecte le mois de la date ( )
      date.setSeconds() affecte les secondes ( )
      date.setTime() affecte la date en millisecondes ( )
      date.setYear() affecte l’année de la date ( ) obsolète !

      CALCULS

      ajouter 1 jour

      var today = new Date();
      var tomorrow = new Date();
      tomorrow.setDate(today.getDate()+1);

      ajouter 1 mois

      var today = new Date();
      var tomorrow = new Date();
      tomorrow.setDate(today.getMonth()+1);

      convertir une date en millisecondes

      Date.parse() converti le temps passé en millisecondes depuis le 1er janvier 1970 et la date en question.

       

      Ex:var msec = Date.parse("March 21, 2012″);

       

      Opération inverse, transformer un temps en millisecondes en une date :

      var msec = Date.parse("March 21, 2012″);
      var d = new Date(msec);

      COMPARER DEUX DATES

      Comparer la date d’aujourd’hui au 18 mars 2016 :

       

      var date1 = new Date();
      var date2 = new Date(2016, 3, 18);
      if ( date1 > date2 ) {
         // date1 est après date2
      }else if (date1 < date2){
         // date1 est avant date2
      }else{
         // date1 et date2 sont la même date
      }

       

      Temps écoulé après un laps de temps :

       

      var debut = Date.now();
      traitementQuiPrendBeaucoupDeTemps();
      var fin = Date.now();
      var temps = fin - debut; // temps écoulé en millisecondes

      année bissextile

      var annee = prompt('Année ?')
      console.log(new Date(annee,2,0).getDate());

       

      L’astuce: lors d’une date incohérente (le 0 du mois de mars), JS renvoie le dernier jour du mois précédent (février).

       

      Number.prototype.isBissextile = function(){
         return (new Date(this,2,0).getDate()>=29);
      }
      console.log((2016).isBissextile());

       

      Date.prototype.isBissextile = function(){
         return (new Date(this.getFullYear(),2,0).getDate()>=29);
      }
      var today = new Date();
      today.setFullYear(2012);
      console.log(today.isBissextile());

       

      Nombre de jours écoulés

      function diffdate(d1,d2){
         var NbJours = d2.getTime() - d1.getTime();
         return Math.ceil(NbJours/(1000*60*60*24));
      }

      Explication : d1 et d2 étant deux dates, la méthode getTime() retourne le nombre de millisecondes écoulées depuis le 1er janvier 1970.
      Il suffit donc de soustraire les deux valeurs et de convertir le nombre de millisecondes obtenues en jours (1000 =>secondes, 60 => minutes, 60 => heures, 24 => jours).

       

      Exemple d’utilisation de ce code :

      var Date1 = new Date(2010,0,1);
      var Date2 = new Date(2011,0,1);
      alert(diffdate(Date1,Date2) + ' jours');

       

      Vous pouvez enrichir cette fonction en spécifiant l’unité de temps à renvoyer :

      function diffdate(d1,d2,u){
         var div=1;
         switch(u){
            case 's':
               div=1000;
               break;
            case 'm':
               div=1000*60;
               break;
            case 'h':
               div=1000*60*60;
               break;
            case 'd':
               div=1000*60*60*24;
               break;
         }
       var Diff = d2.getTime() - d1.getTime();
         return Math.ceil(Diff/div);
      }
      var Date1 = new Date(2010,0,1);
      var Date2 = new Date(2011,0,1);
      alert(diffdate(Date1,Date2,'d')
      + ' jours\n'+diffdate(Date1,Date2,'h')
      + ' heures\n'+diffdate(Date1,Date2,'m')
      + ' minutes\n'+diffdate(Date1,Date2,'s')
      + ' secondes\n'+ diffdate(Date1,Date2,'')
      + ' millisecondes');

      DETERMINER LA DATE D’IL Y A 6 MOIS

      L’astuce qui vient en premier est de retrancher six mois à la date du jour :

      var date = new Date();
      date.setMonth(today.getMonth()-6);

      Satisfaisante dans la plupart des cas,cette solution ne l’est plus pour les derniers jours du mois.
      En effet, si l’on prend par exemple le 31 août, le code précédent affectera à la variable la date du 31 février et comme cette date n’existe pas, elle sera rectifiée par JavaScript en 2 ou 3 mars (selon que l’année est bissextile ou non), or, dans ce genre de cas, c’est bien le dernier jour de février que l’on cherche.
      Il va donc falloir utiliser l’astuce suivante :

      nous allons fixer la date au jour 0 du 5e mois précédent, ce qui aura pour effet d’ajuster la date au dernier jour du mois -6 ;
      affecter le jour à la plus petite valeur entre la date du jour et le dernier jour d’il y a six mois en utilisant l’objetMath().

       

      var today = new Date();
      var last6 = new Date(today.getFullYear(),today.getMonth()-5,0);
      last6.setDate(Math.min(today.getDate(),last6.getDate()));

      LE TEMPS

      calculer la différence de temps entre deux moments

       

      http://www.unitarium.com/time-calculator

       

      http://jsfiddle.net/KQQqp/

       

      Le format dd/mm/yyyy

      new Date().toLocaleDateString('fr') // 20/10/2021

      L’objet Date

      new Date(timestamp) // prend un nombre "timestamp"
      new Date(année, indexDuMois) // l'indexDuMois commence à 0, Mars est 2, Mai 4
      new Date(année, indexDuMois, jour)
      new Date(année, indexDuMois, jour, heure)
      new Date(année, indexDuMois, jour, heure, minute)
      new Date(année, indexDuMois, jour, heure, minute, secondes)
      new Date(année, indexDuMois, jour, heure, minute, secondes, millisecondes)

      toDateString()

      new Date().toDateString() // 'Wed Oct 20 2021'

      toUTCString()

      new Date().toUTCString() // 'Wed, 20 Oct 2021 12:50:02 GMT'

      Transformer un timestamp en date JavaScript

      Un timestamp est une unité de temps propre aux systèmes informatiques comme UNIX. Si vous devez formater un timestamp en une date en JavaScript, vous pouvez créer un objet Date à partir d’un timestamp.Si c’est un timestamp UNIX à 10 chiffres que vous utilisez, vous devrez multiplier la valeur du timestamp par 1000. Les timestamps de JavaScript prenant en compte les millisecondes, contrairement aux timestamps UNIX qui s’arrêtent aux secondes, il faut fournir les 4 derniers chiffres additionnels.

      const timestamp = new Date(1634726212 * 1000).toLocaleDateString("fr") // 20/10/2021

       

 

Aucun commentaire

 

Laissez un commentaire