Trucsweb.com

Trucsweb.com

Javascript

Manipulation des dates/heures en Javascript

RDFFav

Manipulation des dates/heures en Javascript - Expliqué en détail et avec plusieurs scripts très pratiques.

Manipuler les dates et le temps est très utile. Récupérer la date locale d’un visiteur, convertir une date en temps GMT, extraire les minutes ou les jours à des fins de calcul ou utiliser un délai pour exécuter des fonction récursive, et autres manipulations.date heure minutes secondes délais timer getDate() setDate() getDay() etHours() getHours() setMinutes() getMinutes() setMonth() getMonth() setSeconds() getSeconds() setTime() getTime() setYear() getUTCHours getYear setTimeout() clearTimeout()Manipulation des dates/heures en Javascript - Expliqué en détail et avec plusieurs scripts très pratiques.

  • · Niveau : INTERMÉDIAIRE
  • · Compatibilité : Tous les navigateurs

Manipuler les dates et le temps est très utile. Récupérer la date locale d’un visiteur, convertir une date en temps GMT, extraire les minutes ou les jours à des fins de calcul ou utiliser un délai pour exécuter des fonction récursive, et autres manipulations.

L’objet Date

L’objet " date " du Javascript permet d’accéder et de manipuler le format date et heure. Les méthodes sont très semblables au Java, enregistre en milliseconde depuis le 1er Janvier 1970 00 :00 :00, elles ne seront plus valides vers 2032 si je me rappelle bien, et ce en raison du nombre limité d’octets !!. Enfin, d’ici là, amusons-nous un peu. Explications, exemple et une librairie de fonctions utiles.

Pour manipuler une date ou obtenir la date du jour vous devez créer un objet date. Il y a quatre façons de faire.

  • NomObjet = new Date()
  • NomObjet = new Date(" mois Jour, année heures:minutes:secondes ")
  • NomObjet = new Date(année, mois, jour)
  • NomObjet = new Date(année, mois, jour, heures, minutes, secondes)
  • La première syntaxe permet d’obtenir la date du jour dans le format (MM/JJ/AA)
  • La deuxième permet de forcer une date avec l’heure. chaîne de car. (strnig)
  • Les troisième et quatrième syntaxes en format (integer).
  • En n’initialisant pas l’heure (heure, minutes, secondes), leur valeur sera à zéro.
Exemples
var dAujourdhui = new Date();
var dNoel = new Date("February 5, 2001 18:15:00");
var dNoel = new Date(97, 12, 25);
var dNoel = new Date(97, 12, 25, 1, 0, 0);
Les Méthodes

Une fois votre objet crée ou la date du jour obtenu, vous pouvez utiliser les méthodes suivantes pour manipuler votre objet.

Exemples

NomObjet.NomMethode(paramètres).

getDate()
Retourne le jour du mois pour une date spécifique.
setDate()
Change la date d’un mois. Entre 1 et 31
getDay()
Retourne le jour de la semaine pour une date spécifique. Zéro pour dimanche, 1 pour lundi et ainsi de suite.
setHours()
Change l’heure d’une date spécifique. Entre 0 et 23.
getHours()
Retourne l’heure d’une date spécifique. Entre 0 et 23.
setMinutes()
Change les minutes d’une date spécifique. Entre 0 et 59.
getMinutes()
Retourne les minute d’une date spécifique. Nombre entre 0 et 59.
setMonth()
Change le mois d’une date spécifique. Entre 0 et 11.
getMonth()
Retourne le mois d’une date spécifique. Nombre entre 0 et 11.
setSeconds()
Change les secondes d’une date spécifique. Entre 0 et 59.
getSeconds()
Retourne les secondes d’une date spécifique. Nombre entre 0 et 59.
setTime()
Change la valeur de l’objet Date.
getTime()
Retourne le nombre de milisecondes depuis le 1er janvier 1970.
setYear()
Change l’année d’une date spécifique. Entre 0 et 23.
getUTCHours
Retourne l’heure selon la norme "Greenwich Mean Time GMT" en minute.
 
getYear
Retourne l’année d’une date spécifique. À partir de 1900.
setTimeout() et clearTimeout()
Évalue une expression après un certain délais en milisecondes.
FONCTION : getDate()

Retourne le jour du mois pour une date spécifique. Nombre entre 1 et 31

Syntaxe : NomObjet.getDate()

Paramètres : aucun

<script>
var maDate = new Date("February 5, 2001 18:15:00");
var jour = maDate.getDate();

// Alerte pour afficher le résultat
// "\n" permet de changer de ligne
alert("maDate = "+maDate+"\ngetDate = "+jour)
</script>

Résultat
  maDate = Mon Feb 5 23:15:00 EST 2001
  getDate = 5
^
FONCTION : getDay()

Retourne le jour de la semaine pour une date spécifique. Nombre entre 0 et 6.

Syntaxe : NomObjet.getDay()

Paramètres : aucun

<script>
var maDate = new Date("February 5, 2001 23:15:00");
var nJour = maDate.getDay();

alert("maDate = "+maDate+"\ngetDay = "+nJour)
</script>

Résultat
  maDate = Mon Feb 5 23:15:00 EST 2001
  getDay = 1

0 = Dimanche
1 = Lundi
2 = Mardi
3 = Mercredi
4 = Jeudi
5 = Vendredi
6 = Samedi 
^
FONCTION : getHours()

Retourne l’heure d’une date spécifique. Nombre entre 0 et 23.

Syntaxe : NomObjet.getHours()

Paramètres : aucun

<script type="text/javascript" language="javascript">
  maDate = new Date("February 5, 2001 23:15:00");
  nHeure = maDate.getHours();

  alert("maDate = "+maDate+"\ngetHours = "+nHeure)
</script>

Résultat
  maDate = Mon Feb 5 23:15:00 EST 2001
  getHours = 23
^
FONCTION : getMinutes()

Retourne les minute d’une date spécifique. Nombre entre 0 et 59.

Syntaxe : NomObjet.getMinutes()

Paramètres : aucun

<script type="text/javascript" language="javascript">
  maDate = new Date("February 5, 2001 23:15:00");
  nMinutes = maDate.getMinutes();

  alert("maDate = "+maDate+"\ngetMinutes = "+nMinutes)
</script>

Résultat
  maDate = Mon Feb 5 23:15:00 EST 2001
  getMinutes = 15
^
FONCTION : getMonth()

Retourne le mois d’une date spécifique. Nombre entre 0 et 11.

Syntaxe : NomObjet.getMonth()

Paramètres : aucun

<script type="text/javascript" language="javascript">
  maDate = new Date("February 5, 2001 23:15:00");
  nMois = maDate.getMois();

  alert("maDate = "+maDate+"\ngetMonth = "+nMois)
</script>

Résultat
  maDate = Mon Feb 5 23:15:00 EST 2001
  getMonth = 1

0 = Janvier
1 = Février
2 = Mars
3 = Avril
4 = Mai
5 = Juin
6 = Juillet
7 = Août
8 = Septembre
9 = Octobre
10 = Novembre
11 = Décembre
^
FONCTION : getSeconds()

Retourne les secondes d’une date spécifique. Nombre entre 0 et 59.

Syntaxe : NomObjet.getSeconds()

Paramètres : aucun

<script type="text/javascript" language="javascript">
  maDate = new Date("February 5, 2001 23:15:00");
  nSec = maDate.getSeconds();

  alert("maDate = "+maDate+"\ngetSeconds = "+nSec)
</script>

Résultat
  maDate = Mon Feb 5 23:15:00 EST 2001
  getSeconds = 0
^
FONCTION : getTime()

Retourne le nombre de milisecondes depuis le 1er janvier 1970.

Syntaxe : NomObjet.getTime()

Paramètres : aucun

<script type="text/javascript" language="javascript">
  maDate = new Date("February 5, 2001 23:15:00");
  nTemps = maDate.getTime();

  alert("maDate = "+maDate+"\ngetTime = "+nTemps)
</script>

Résultat
  maDate = Mon Feb 5 23:15:00 EST 2001
  getTime = 981432900000
^
FONCTION : getUTCHours()

Retourne l’heure selon la norme "Greenwich Mean Time GMT" en minute.

Syntaxe : NomObjet.getUTCHours()

Paramètres : aucun

<script type="text/javascript" language="javascript">
  maDate = new Date("February 5, 2001 21:15:00");
  nGMT1 = maDate.getUTCHours();

  // Soustraire 5 pour obtenir le fuseau horraire de Montréal
  nGMT2 = nGMT1 - 5; 
  if ( nGMT2 < 0 ) {
    nGMT2 = 24 + nGMT2;
  }
  if (nGMT2 > 23) {
    nGMT2 = nGMT2 - 24;
  }

  alert("maDate = "+maDate+"\ngetUTCHours = "
          +nGMT1+"\nHeure Local = "+nGMT2)
</script>

Résultat
  maDate = Mon Feb 5 21:15:00 EST 2001
  getUTCHours = 2
  Heure locale =  21

Conversion entre principaux fuseaux horraire
+1 = Europe centrale
+2 = Istanbul
+3 = Moscou
+8 = Hong Kong
+9 = Tokyo
+10 = Townsville, Australia
-5 = New York (EST, Est stanrd time)
-6 = Chicago (CST, Continental stanrd time)
-7 = Denver (MST, Medle stanrd time)
-8 = Los Angeles (PST, Pacific stanrd time)
^
FONCTION : getYear()

Retourne l’année d’une date spécifique. À partir de 1900. En bas de 2000, l’année ne retourne que deux caractères Ex: 1995 = 95

Syntaxe : NomObjet.getYear()

Paramètres : aucun

<script type="text/javascript" language="javascript">
  maDate1 = new Date();
  maDate2 = new Date("February 5, 1995 23:15:00");
  maDate3 = new Date("February 5, 2001 23:15:00");
  nAnnee1 = maDate1.getYear();
  nAnnee2 = maDate2.getYear();
  nAnnee3 = maDate3.getYear();

  alert("maDate1 = "+maDate1+"\ngetYear = "+nAnnee1
          +"\nmaDate2 = "+maDate2+"\ngetYear = "+nAnnee2
          +"\nmaDate3 = "+maDate3+"\ngetYear = "+nAnnee3)
</script>

Résultat
  maDate1 = "Votre date local"
  getYear = 2001
  maDate1 = Sun Feb 5 23:15:00 EST 1995
  getYear = 95
  maDate1 = Mon Feb 5 23:15:00 EST 2001
  getYear = 2001
^
FONCTION : setDate()

Change la date d’un mois.

Syntaxe : NomObjet.setDate(valeurJour)

Paramètres : valeurJour = un nombre entre 1 et 31

<script type="text/javascript" language="javascript">
  maDate1 = new Date("February 2, 2001 18:15:00");
  maDate2 = new Date("February 2, 2001 18:15:00");
  maDate2.setDate(5);

  alert("maDate = "+maDate1+"\nsetDate = "+maDate2)
</script>

Résultat
  maDate = Fri Feb 2 18:15:00 EST 2001
  setDate = Mon Feb 5 18:15:00 EST 2001
^
FONCTION : setHours()

Change l’heure d’une date spécifique.

Syntaxe : NomObjet.setHours(valeurHeure)

Paramètres : valeurHeure = un nombre entre 0 et 23

<script type="text/javascript" language="javascript">
  maDate1 = new Date("February 2, 2001 18:15:00");
  maDate2 = new Date("February 2, 2001 18:15:00");
  maDate2.setHours(23);

  alert("maDate = "+maDate1+"\nsetHours = "+maDate2)
</script>

Résultat
  maDate = Fri Feb 2 18:15:00 EST 2001
  setHours = Fri Feb 2 23:15:00 EST 2001
^
FONCTION : setMinutes()

Change les minute d’une date spécifique.

Syntaxe : NomObjet.setMinutes(valeurMinutes)

Paramètres : valeurMinutes = un nombre entre 0 et 59

<script type="text/javascript" language="javascript">
  maDate1 = new Date("February 2, 2001 18:15:00");
  maDate2 = new Date("February 2, 2001 18:15:00");
  maDate2.setMinutes(20);

  alert("maDate = "+maDate1+"\nsetMinutes = "+maDate2)
</script>

Résultat
  maDate = Fri Feb 2 18:15:00 EST 2001
  setMinutes = Fri Feb 2 18:20:00 EST 2001
^
FONCTION : setMonth()

Change le mois d’une date spécifique.

Syntaxe : NomObjet.setMonth(valeurMois)

Paramètres : valeurMois = un nombre entre 0 et 11

<script type="text/javascript" language="javascript">
  maDate1 = new Date("February 2, 2001 18:15:00");
  maDate2 = new Date("February 2, 2001 18:15:00");
  maDate2.setMonth(5);

  alert("maDate = "+maDate1+"\nsetMonth = "+maDate2)
</script>

Résultat
  maDate = Fri Feb 2 18:15:00 EST 2001
  setMonth = Sat Jun 2 18:15:00 EST 2001
^
FONCTION : setSeconds()

Change les secondes d’une date spécifique. Entre 0 et 59.

Syntaxe : NomObjet.setSeconds(valeurSecondes)

Paramètres : valeurSecondes = un nombre entre o et 59

<script type="text/javascript" language="javascript">
  maDate1 = new Date("February 2, 2001 18:15:00");
  maDate2 = new Date("February 2, 2001 18:15:00");
  maDate2.setSeconds(30);

  alert("maDate = "+maDate1+"\nsetSeconds = "+maDate2)
</script>

Résultat
  maDate = Fri Feb 2 18:15:00 EST 2001
  setSeconds = Fri Feb 2 18:15:30 EST 2001
^
FONCTION : setTime()

Change la valeur de l’objet Date.

Syntaxe : NomObjet.setTime(valeurMSec)

Paramètres : valeurMSec = le nombre de milliseconde depuis le 1er janvier 1970 00:00:00.

<script type="text/javascript" language="javascript">
  // Exemple qui passe la date de maDate1 à maDate2
  // en passant les millisecondes d’une date à l’autre
  maDate1 = new Date("February 5, 2001 23:15:00")
  maDate2 = new Date()
  maDate2.setTime(maDate1.getTime());

  alert("maDate = "+maDate1+"\nsetTime = "+maDate2)
</script>

Résultat
  maDate = Mon Feb 5 23:15:00 EST 2001
  setTime = Mon Feb 5 23:15:00 EST 2001
^
FONCTION : setTimeout()

Évalue une expression après un certain délais en milisecondes.

Syntaxe : DelaisID = setTimeout(expression, msec)

Syntaxe : clearTimeout(DelaisID)

Paramètres :

- DelaisID = Identifiant pour annuler le délais à l’aide de "clearTimeout"

- expression = fonction ou propriété d’un objet.

- msec = nombre ou propriété d’un objet en milisecondes.

<!-- Exemple qui affiche l’heure dans
un champ texte d’un formulaire
et en format texte avec la balise SPAN -->

<head>

<script type="text/javascript" language="javascript">
<!--
var timerID = null;
var ok = false;

function arreter() {
  // s’assure que l’heure est arrêté
  if(ok)
    // Arrêt du délais
    clearTimeout(timerID)
  ok = false
}

function debut() {
  // Part l’affichage de l’heure
  arreter()
  aff_heure()
}

function aff_heure() {
  // Fonction pour afficher l’heure
  // Construction de l’heure
  var heure = new Date();
  var hh = heure.getHours();
  var mm = heure.getMinutes();
  var ss = heure.getSeconds();
  var valeur = "" + ((hh > 12) ? hh - 12 : hh);
  valeur += ((mm < 10) ? ":0" : ":") + mm;
  valeur += ((ss < 10) ? ":0" : ":") + ss;
  valeur += (hh >= 12) ? " P.M." : " A.M.";

  // Affiche l’heure dans le formulaire
  document.form.resul.value = valeur;

  // Affiche l’heure en format texte (pas compatible N6)
  if (document.layers) {
    document.layers.Htxt.document.write(valeur);
    document.layers.Htxt.document.close();
  }
  else if (document.all) {
    Htxt.innerHTML = valeur;
  }

  // Appelle de façon récursive la fonction
  // aff_heure() à chaque seconde.
  timerID = setTimeout("aff_heure()",1000);

  // Indique que l’heurre fonctionne
  ok = true;
}
// -->
</script>
</head>

<!-- Événement "onload" pour partir l’affichage
<body onLoad="debut()">

<!-- Affichage dans le formulaire -->
<form name="form">
  <input type="text" name="resul" size="12" value="">
</form>

<br>

<!-- Affichage en format texte -->
<span id=Htxt style="position:relative;"></span>

</body>

Résultat
  L’heure du formulaire  (HH:MM:SS A.M./P.M")
  L’heure en format texte (HH:MM:SS A.M./P.M")
^
FONCTION : setYear()

Change l’année d’une date spécifique. Entre 0 et 23.

Syntaxe : NomObjet.setYear(valeurAnnee)

Paramètres : valeurAnnee = un nombre entre 1900 et (?) 2032.

<script type="text/javascript" language="javascript">
  maDate1 = new Date("February 2, 2001 18:15:00");
  maDate2 = new Date("February 2, 2001 18:15:00");
  maDate2.setYear(2002);

  alert("maDate = "+maDate1+"\nsetYear = "+maDate2)
</script>

Résultat
  maDate = Fri Feb 2 18:15:00 EST 2001
  setYear = Sat Feb 2 18:15:00 EST 2002
PROTOTYPE - Quelques fonctions pratiques à ajouter à l’objet Date
Date.prototype.ajouteSecondes = function(Secondes) {
    this.setSeconds(this.getSeconds() + Secondes);
    return this;
};

Date.prototype.ajouteMinutes = function(minutes) {
    this.setMinutes(this.getMinutes() + minutes);
    return this;
};

Date.prototype.ajouteHeures = function(heures) {
    this.setHours(this.getHours() + heures);
    return this;
};

Date.prototype.ajouteJours = function(jours) {
    this.setDate(this.getDate() + jours);
    return this;
};

Date.prototype.ajouteSemaines = function(semaines) {
    this.ajouteJours(semaines*7);
    return this;
};

Date.prototype.ajouteMois = function (mois) {
    var d = this.getDate();
    this.setMonth(this.getMonth() + mois);
    var dCourrante = this.getDate();
    if (d !== dCourrante) {  this.ajouteJours(-dCourrante);}
    return this;
};

Date.prototype.ajouteAnnees = function(annees) {
    var d = this.getDate();
    this.setFullYear(this.getFullYear() + annees);
    var dCourrante = this.getDate();
    if (d !== dCourrante) {  this.ajouteJours(-dCourrante);}
    return this;
};

// sDatePortion: "annees", "mois", "semaines", "jours", "heures", "minutes", "secondes"
Date.twDateDiff = function(sDatePortion, dDateDe, dDateA) {
  sDatePortion = sDatePortion.toLowerCase();
  var nDifference = dDateA - dDateDe;
  var divideBy = { annees:31536000000, mois:2628000000, semaines:604800000, jours:86400000, heures:3600000, minutes:60000, secondes:1000 };
  return Math.floor( nDifference/divideBy[sDatePortion]);
}

// Obtenir l’âge
function twCalculeAge(dNaissance) {
  let nDifferenceEnMilliseconde = Date.now() - dNaissance.getTime();
  let dAge = new Date(nDifferenceEnMilliseconde); // Millisecondes
  // LA date UTC renvoie le nombre de millièmes de seconde depuis le 1er janvier 1970 !!
  return Math.abs(dAge.getUTCFullYear() - 1970);
}
Django (Oznog) Blais
Dernière mise à jour :

Commentaires

  • Bonjour, Pouvez vous me dire comment opérer des opération sur les Dates ? Est-il possible de faire quelques chose comme nouvelleDate = maDate.addHour(3); ou quelque chose du genre ??? Merci
    64x64
    DUMONT Nicolas
    Date (GMT) : 2015-10-21 13:12:46 (UTC +0000)
    • Salut, Il n'y a pas de .addHour comme les langages serveur PHP ou ASP. Mais ça se fait très bien avec « setHours » // Ajouter 3 heures à une date dDate.setHours(dDate.getHours()+3); <script> var dDate = new Date(); var dNeoDate = new Date(dDate); dNeoDate.setHours(dNeoDate.getHours()+3); alert(dDate.getHours()+\n+dNeoDate.getHours()); </script>
      64x64
      oznog
      Date (GMT) : 2015-10-21 13:16:22 (UTC +0000)


    • Bonjour, Je souhaiterai récupérer le fuseau horaire afin de passer automatiquement en UTC en ajoutant ou soustrayant le décalage horaire à l'heure. Mais je ne sais pas comment récupérer ce décalage (ex. : GMT +2 pour la France en heure d'été).
      64x64
      Maxime
      Date (GMT) : 2016-04-18 9:46:20 (UTC +0000)
      • Salut, Ça n'existe pas, mais tu peux récupérer l'heure UTC et soustraire l'heure local tout simplement : dAujourdhui = new Date(); nHeureUTC = dAujourdhui.getUTCHours(); nHeureLocal = dAujourdhui.getHours(); alert("décalage : "+(nHeureUTC-nHeureLocal)); Sinon, il existe des solution serveur, notamment avec SQL Server. Tu peux lire ce tutoriel pour plus de détail : ASP : Temps Universel Coordonné (UTC) http://www.trucsweb.com/tutoriels/asp/asp-utc/ Ciao
        64x64
        oznog
        Date (GMT) : 2016-04-18 12:33:45 (UTC +0000)
        • Super, merci.
          64x64
          Maxime
          Date (GMT) : 2016-04-18 17:11:5 (UTC +0000)



      • Bonjour, Je crée une date en splitant une chaine qui est du type "dd/MM/yyyy hh:mm:ss tt" Seulement quand j'affiche la date dans ma page ensuite je récupère une date du type "Sun Apr 17 17:00:00 UTC+0200 2016" Est-ce que tu sais comment je pourrais garder mon format initial ? Merci d'avance.
        64x64
        Jonathan
        Date (GMT) : 2016-08-30 9:48:18 (UTC +0000)
        • Salut, Une date est un format de données. Ce n'est pas une chaine de caractère. Comme un nombre, même si on peut l'écrire, même si on peut le « splitter », ça reste un nombre et le moteur JavaScript le traite comme un nombre. Une date c'est la même chose. On a beau la travailler, elle reste une date régie par le paramètre du navigateur, globale ou locale. C'est la même chose avec le format de date du serveur qui indique au navigateur le bon format. 1. Tu peux t'assurer qu'elle reste une chaine de caractère en la transférant dans une chaine de caractère ou en l'affichant directement lors de la construction. document.write(jour + ' ' + nomMois[mois] + ' ' + annee); 2. comme la plupart des développeurs, j'utilise ma propre librairie pour afficher les dates, particulièrement en français. Le JavaScript a déjà depuis la version 1 le prototype date.toLocaleString(). Par exemple new Date().toLocaleString('fr-CA'); Mais encore une fois, tout dépend du navigateur... 3. Avec le JavaScript 6 il y a un nouveau « DateTimeFormat » https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/format Exemple : var MaDateFrancaise = new Intl.DateTimeFormat("fr-FR") var MaDateQuebecoise = new Intl.DateTimeFormat("fr-CA") MaDateFrancaise.format(new Date("2016-08-30")) === "1/2/2015" MaDateQuebecoise.format(new Date("2016-08-30")) === "2.1.2015" Ça fait pas mal le tour. Sinon tu peux utiliser une librairie comme « dateFormat » de Steven Levithan. http://blog.stevenlevithan.com/archives/date-time-format Ciao
          64x64
          OZNOG
          Date (GMT) : 2016-08-30 11:50:6 (UTC +0000)


        • Bonjour, je cherche un script un peu spécial qui pourrait m'afficher la date complète du jour (ex: Vendredi 23 Février 2018, ça je sais le faire) mais seulement tous les 3 jours (ça je sais pas le faire !). Merci de votre aide...
          64x64
          Nafix
          Date (GMT) : 2018-02-23 11:13:30 (UTC +0000)
          Date local : Fri Feb 23 2018 12:15:07 GMT+0100 (Paris, Madrid)
          • Salut, Je ne comprends pas, tu fais quoi les autres jours de la semaine? Et quel jour? Tu commences à compter le premier jour quand? Il manque tellement d'information dans ton commentaire qui d'ailleurs n'a rien du commentaire, mais d'une commande. En principe, tu compares la date du jour avec tes 3 dates choisies, si elles concordent tu affiches ta date. Ciao
            64x64
            oznog
            Date (GMT) : 2018-02-24 15:30:35 (UTC +0000)
            Date local : Sat Feb 24 2018 10:32:11 GMT-0500 (Est)
            • En fait je voudrais que la date du jour s'affiche seulement tous les 2/3 jours (par exemple Mardi, Jeudi, Samedi), je ne m'y connais pas assez pour créer un script comme ça, je sais juste afficher la date du jour chaque jour... :/
              64x64
              Nafix
              Date (GMT) : 2018-03-03 09:32:20 (UTC +0000)
              Date local : Sat Mar 03 2018 10:33:54 GMT+0100 (Paris, Madrid)
              • Salut, En fait tu as besoin de connaître le jour de la semaine. getDay() retourne le numéro du jour de la semaine, dimanche étant 0. Donc tu veux afficher la date seulement le jour 2, 4 et 6. <script> if (window.console) { (console.info || console.log).call(console,'Propulsé par Neural v5.3'); } var dAujourdhui = new Date(); var nJour = dAujourdhui.getDay(); if(nJour==2||nJour==4||nJour==6) { document.write('Date : '+dAujourdhui.toLocaleDateString()); } </script>
                64x64
                oznog
                Date (GMT) : 2018-03-03 13:20:24 (UTC +0000)
                Date local : Sat Mar 03 2018 08:21:58 GMT-0500 (Est)




          • D'accord, merci bcp pour ton aide.
            64x64
            Nafix
            Date (GMT) : 2018-03-05 12:38:05 (UTC +0000)
            Date local : Mon Mar 05 2018 13:39:39 GMT+0100 (Paris, Madrid)

            • Bonjour à vous. S'il-vous-plait, je souhaiterais pouvoir faire un calcul de date. Il s'agit en fait d'une incrémentation. C'est-à -dire chaque jour, depuis une date précise, cela calcule le nombre de jour jusqu'à la date actuelle. Cordialement.
              64x64
              Ashley NGONE
              Date (GMT) : 2019-05-15 11:07:10 (UTC +0000)
              Date local : Wed May 15 2019 12:16:25 GMT+0100 (heure normale d
              • Salut, Ce n'est pas une incrémentation dans la mesure ou le calcul se fait à chaque fois, c'est-à-dire soustraire la première date à la date du jour. 1. Conversion de la date pour s'assurer de bon calcul ; 2. Soustraction de la date à la date du jour ; 3. Division « heures*minutes*secondes*millisecondes » pour obtenir le nombre de jours... Note que ce code retourne une valeur négative si la date de départ n'est pas encore passée. <script> var twDateDiff2 = function(sDate) { var nJour = 24*60*60*1000; // heures*minutes*secondes*millisecondes dDate = new Date(sDate); dAujourdhui = new Date(); return Math.floor( ( Date.UTC(dAujourdhui.getFullYear(), dAujourdhui.getMonth(), dAujourdhui.getDate()) - Date.UTC(dDate.getFullYear(), dDate.getMonth(), dDate.getDate()) ) /nJour ); } alert(twDateDiff2('2019/05/14')); </script>
                64x64
                oznog
                Date (GMT) : 2019-05-15 11:52:28 (UTC +0000)
                Date local : Wed May 15 2019 08:01:45 GMT-0400 (heure d’été de


              • Bonjour, S'il-vous-plait, je souhaiterais faire un calcul depuis la date du jours savoir en rentrant une date de naissance quelconque dans html si il y a 60 ans d'écart et pouvoir l'utiliser pour faire une test. Cordialement.
                64x64
                Jean
                Date (GMT) : 2019-06-05 13:46:08 (UTC +0000)
                Date local : Wed Jun 05 2019 15:46:54 GMT+0200 (heure d’été d’E
                • Salut, Il suffit de soustraire la date avec la première date. Par contre il s'agit de millisecondes, alors le seule problème c'est de les convertir. Il y a plusieurs méthode mais j'aime bien la division puisque ce sont toujours les même nombre (il y a toujours le même nombre de minutes dans une heure...). Par exemple pour obtenir le nombre de jour il faut diviser le nombre de millisecondes avec « 86400000 ». Voilà une petit fonction « twDateDiff » : <div id="oTrace"></div> <script> // sDatePortion: "annees", "mois", "semaines", "jours", "heures", "minutes", "secondes" Date.twDateDiff = function(sDatePortion, dDateDe, dDateA) { sDatePortion = sDatePortion.toLowerCase(); var nDifference = dDateA - dDateDe; var divideBy = { annees:31536000000, mois:2628000000, semaines:604800000, jours:86400000, heures:3600000, minutes:60000, secondes:1000 }; return Math.floor( nDifference/divideBy[sDatePortion]); } // Exemples complet // Date de naissance var d1 = new Date(2019, 5, 4); // Date du jour var d2 = new Date(); document.getElementById("oTrace").innerHTML = d2.toLocaleString()+" - "+d1.toLocaleString()+" = <b>" + (d2-d1) +" millisecondes.</b>"; document.getElementById("oTrace").innerHTML += "<br />Annees : "+Date.twDateDiff("annees", d1, d2); document.getElementById("oTrace").innerHTML += "<br />Mois : "+Date.twDateDiff("mois", d1, d2); document.getElementById("oTrace").innerHTML += "<br />Semaines : "+Date.twDateDiff("semaines", d1, d2); document.getElementById("oTrace").innerHTML += "<br />Jours : "+Date.twDateDiff("jours", d1, d2); document.getElementById("oTrace").innerHTML += "<br />Heures : "+Date.twDateDiff("heures", d1, d2); document.getElementById("oTrace").innerHTML += "<br />Minutes : "+Date.twDateDiff("minutes", d1, d2); document.getElementById("oTrace").innerHTML += "<br />Secondes : "+Date.twDateDiff("secondes", d1, d2); </script> Il y a aussi un exemple plus simple avec l'astuce de la date UTC. Il suffit de convertir le résultat de la soustraction (en millisecondes) en date UTC pour ensuite récupérer le nombre d'années. Sans oublier de soustraire 1970, puisque la « date UTC » retourne le nombre de millisecondes depuis le 1er janvier 1970 !! <script> // Code Plus simple function twCalculeAge(dNaissance) { let nDifferenceEnMilliseconde = Date.now() - dNaissance.getTime(); let dAge = new Date(nDifferenceEnMilliseconde); // Millisecondes return Math.abs(dAge.getUTCFullYear() - 1970); } var dMaDateDeNaissance = new Date(1966, 6, 15); alert(twCalculeAge(dMaDateDeNaissance)); </script> Ciao
                  64x64
                  oznog
                  Date (GMT) : 2019-06-05 17:32:24 (UTC +0000)
                  Date local : Wed Jun 05 2019 13:33:08 GMT-0400 (heure d’été de


                • Bonjour, Je suis actuellement emplye a CRS-Mali et j'ai une preoccupation concernant javascript. Nous collectons les donnees avec Iformbuilder et j'aimerai programmer la variable Mois de telle sorte que le logiciel me donne le mois passe et non le mois en cours. Merci pour vos commentaire et suggestion.
                  64x64
                  Siaka SIDIBE
                  Date (GMT) : 2019-06-06 08:32:51 (UTC +0000)
                  Date local : Thu Jun 06 2019 08:33:37 GMT+0000 (Greenwich Mean
                  • Salut Siaka, Je veux bien t'aider, mais sans aucune piste, sans aucun code, je ne peux rien faire. Je ne connais pas « Iformbuilder » non plus... Je peux te montrer comment enlever un mois au mois en cours mais c'est probablement difficile à appliquer dans ton programme. Il me faudrait le bout de code qui « retourne le mois en cours » justement. <script> var dDate = new Date(2019,0,1); dDate.setMonth( dDate.getMonth() - 1 ); // Retourne le mois de décembre, soit 11 ! alert(dDate.getMonth()) </script> Ciao
                    64x64
                    oznog
                    Date (GMT) : 2019-06-06 12:46:15 (UTC +0000)
                    Date local : Thu Jun 06 2019 08:47:00 GMT-0400 (heure d’été de


                  • Bonjour, Je souhaiterai réaliser un script qui me permettrai de définir la valeur min d’un input date comme ceci : Si aujourd’hui nous sommes lundi alors la valeur min de mon input serait le mercredi suivant soit pour la semaine ainsi : Lundi => mercredi Mardi => jeudi Mercredi => vendredi Jeudi => samedi Vendredi => lundi Samedi => mardi Merci de votre aide
                    64x64
                    Cyril
                    Date (GMT) : 2019-06-15 19:14:15 (UTC +0000)
                    Date local : Sat Jun 15 2019 21:14:56 GMT+0200 (CEST)
                    • Salut, La réponse est dans la réponse précédente. C'est à dire ajouter 2 au jour de la d'aujourd'hui : setDate() + 2. Mon exemple utilise « toLocaleDateString » et donc la configuration locale. Mais peu importe la manière, il faut toujours un script serveur pour valider les dates saisies par un navigateur (comme l'argent). <input id="oMaDate" type="date" min="2019-06-15" max="2025-12-31" /> <script> // Ajuste l'attribut « min » document.getElementById("oMaDate").setAttribute("min", twApresDemain()); function twApresDemain() { var dApresdemain = new Date(); // Ajoute 2 jours dApresdemain.setDate( dApresdemain.getDate() + 2 ); var options = { year: 'numeric', month: 'numeric', day: 'numeric' }; // Retourne une date de type yyyy-mm-jj return dApresdemain.toLocaleDateString("fr-CA", options); // Note : fr-FR retourne yyyy/mm/jj } </script>
                      64x64
                      oznog
                      Date (GMT) : 2019-06-15 19:45:35 (UTC +0000)
                      Date local : Sat Jun 15 2019 15:46:18 GMT-0400 (heure d’été de
                      • Bonjour, Merci beaucoup pour votre réponse qui m'aide bien, mais je voulais plus de detail, en faite du lundi au jeudi je souhaitais avoir un j+2 , cela fonctionne bien, mais le vendredi et samedi devenait un j+3, est-ce possible ?
                        64x64
                        Cyril
                        Date (GMT) : 2019-06-17 07:49:17 (UTC +0000)
                        Date local : Mon Jun 17 2019 09:49:57 GMT+0200 (CEST)
                        • Ha oui, il faut ajouter un test : Si le jour de la semaine (getDay) = (5 ou 6) on ajoute 3 sinon on ajoute 2. if (dApresdemain.getDay()===5||dApresdemain.getDay()===6) { dApresdemain.setDate( dApresdemain.getDate() + 3 ); } else { dApresdemain.setDate( dApresdemain.getDate() + 2 ); } Ciao
                          64x64
                          oznog
                          Date (GMT) : 2019-06-17 14:24:34 (UTC +0000)
                          Date local : Mon Jun 17 2019 10:25:16 GMT-0400 (heure d’été de
                          • Super !! Merci
                            64x64
                            Cyril
                            Date (GMT) : 2019-06-17 19:06:29 (UTC +0000)
                            Date local : Mon Jun 17 2019 21:07:08 GMT+0200 (CEST)





                    • Bonjour a tous Comment recuperer dans un input, le résultat d'un autre input type date au format FR et date longue type "Dimanche 17 Novembre 2019", actuellement je n'arrive qu'a récupérer un format "2019/11/17" merci d'avance pour votre aide Cyril
                      64x64
                      Cyril
                      Date (GMT) : 2019-11-17 11:28:00 (UTC +0000)
                      Date local : Sun Nov 17 2019 12:31:21 GMT+0100 (heure normale d
                      • Salut, C'est pour quoi faire ? En programmation c'est souvent la manière de faire qui importe. Dans ton cas, ce n'est pas un champ de saisie de type date, « Dimanche 17 Novembre 2019 » n'est pas une date, mais une chaine de caractère. En anglais ce serait davantage possible : Sun Nov 17 2019 19:00:00 GMT-0500 (heure normale de l’Est nord-américain). var dDateInvalide = new Date("Dimanche 17 Novembre 2019"); var dDateValide = new Date("Sun Nov 17 2019"); D'ailleurs <input type="text" id="oDateMauvaise" value="Dimanche 17 Novembre 2019" /> donne une erreur ! Une date valide à déjà 3 caractères pour le jour et le mois avec la possibilité d'extraire le tout avec « substr » par exemple. Mais encore là, l'usager risque d'écrire n'importe quoi, ce qui complique la validation de date. En fait, tu dois programmer ta propre fonction de conversion. Moi je saisirais une vraie date dès le départ. Sans parler que le format de la saisie date par le navigateur change selon les régions... Ensuite, pourquoi convertir cette date dans le formulaire ? Il doit bien être envoyé quelque part ce formulaire. Je peux me tromper, mais ne sachant pas qu'est-ce que tu veux faire c'est difficile de te conseiller. Mais en temps normal, on valide le formulaire en JavaScript côté client, mais on extrait les valeurs côté serveur. Enfin, pour extraire le nom du jour, la date, le mois et l'année dans ton cas, étant donné qu'il y a 8 caractères pour « dimanche » et seulement 5 pour « lundi » il n'y a qu'une seule manière, un « split » sur les espaces. Et toujours en supposant que l'usager entre toujours la date dans le même format... 1. Un split sur les espaces pour obtenir une matrice (tableau ou array) 0 le nom du jour, 1 le mois, 2, l'année. 2. Premiers détails du mois en français, une fonction perso pour convertir le mois en nombre. 3. Deuxième détail, ajouter un 0 devant la date en bas de 10 (même pour les anglais ; -). <input type="text" id="maDateMauvaise" value="Dimanche 17 Novembre 2019" onblur="twConversionDate(this.value)" /> <input type="text" id="maDateBonne" value="" /> <script> function twConversionDate(sDate) { // Créer la matrice avec un split var aDate = sDate.split(" "); // ("0" + aDate[1]).slice(-2) est pour ajouter le zéro devant la date... document.getElementById("maDateBonne").value = aDate[3]+ "/"+ twMois(aDate[2]) + "/"+ ("0" + aDate[1]).slice(-2); } function twMois(sMois) { // Fonction pour retourner le numéro du mois // Il manque les autres mois... switch(sMois) { case "Novembre": return 11; break; case "Décembre": return 12; break; default: return 0; } } </script>
                        64x64
                        oznog
                        Date (GMT) : 2019-11-17 13:12:40 (UTC +0000)
                        Date local : Sun Nov 17 2019 08:15:59 GMT-0500 (heure normale d
                        • Bonjour, Merci, d'avoir pris du temps pour m’éclairer, mais j'ai trouvé ma solution. C'etait un formulaire qui renvoyait la date via un input type date ou j'avais un format yyyy/mm/dd, que je renvoyait sur un pdf, mais je voulais afficher un format de date type text, j'ai realisé ceci : var d = new Date(document.getElementById("selectionDate").value); var weekday = new Array(7); weekday[0] = "Dimanche"; weekday[1] = "Lundi"; weekday[2] = "Mardi"; weekday[3] = "Mercredi"; weekday[4] = "Jeudi"; weekday[5] = "Vendredi"; weekday[6] = "Samedi"; var month = new Array(12); month[0] = "Janvier"; month[1] = "Fevrier"; month[2] = "Mars"; month[3] = "Avril"; month[4] = "Mai"; month[5] = "Juin"; month[6] = "Juillet"; month[7] = "Aout"; month[8] = "Septembre"; month[9] = "Octobre"; month[10] = "Novembre"; month[11] = "Décembre"; var j = d.getDate(); var m = month[d.getMonth()]; var n = weekday[d.getDay()]; var y = d.getFullYear(); fullDate.value =n+' '+j+' '+m+' '+ y; Merci encore
                          64x64
                          Cyril
                          Date (GMT) : 2019-11-17 16:53:35 (UTC +0000)
                          Date local : Sun Nov 17 2019 17:56:54 GMT+0100 (heure normale d



                      • bonjour j'ai un script qui me recupere des donnée a partir d'une base donner en fait il recupere d'un historique les données sauf qu'il me recupere seulement à partir 10 du mois mais pas ce qu'il ya avant . merci de m'aider si vous avez une solution je vous laisse le code ici $ Date.prototype.addDays = function (e) { var t = new Date(this.valueOf()); return t.setDate(t.getDate() + e), t }; var C = t.TableIndicateurs = function (e) { function t(e) { o(this, t); var n = a(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this)); return n.orderColumn = function (e, t, r) { n.setState((0, v.orderColumn)(e, t, r)) }, n._update_indicators = function (e, t) { var r = n; x.default.post(g.api.address + "/indicateurs/histo/_upsert", { body: r.state.body, date: t.getFullYear() + "-" + (t.getMonth() + 1 < 10 ? "0" + (t.getMonth() + 1) : t.getMonth() + 1) + "-" + (t.getDate()-1<10 ?"0"+(t.getDate()-1):t.getDate()) }).then(function (e) { r.setState({ needValidation: !1, dateHisto: null }), alert("Les indicateurs ont bien ete ajouté / mis à jour, à la date :" + t) }).catch(function (e) { console.log(e) }) }, n._read_indicators = function (e, t) { var r = n; x.default.post(g.api.address + "/indicateurs/histo/_read", { sector: r.props.secteur, site: r.props.site, date: t.getFullYear() + "-" + (t.getMonth() + 1 < 10 ? "0" + (t.getMonth() + 1) : t.getMonth() + 1) + "-" +(t.getDate()-1<10 ?"0"+(t.getDate()-1):t.getDate()) }).then(function (e) { r.setState({ body: e.data, dateHisto: (t.getDate()-1<10 ?"0"+(t.getDate()-1):t.getDate()) + "/" + (t.getMonth() + 1 < 10 ? "0" + (t.getMonth() + 1) : t.getMonth() + 1) + "/" + t.getFullYear() }) }) }, n._nextDate = function (e) { return console.log("this.state.indexHisto test", e, n.state.indexHisto, (n.state.indexHisto - 1) % n.props.dateHisto.length, n.props.dateHisto.length), null == n.state.indexHisto && n.props.dateHisto.length > 0 ? (n._read_indicators(null, new Date(n.props.dateHisto[0].date)), void n.setState({indexHisto: 0 })) : "avant" == e ? (n._read_indicators(null, new Date(n.props.dateHisto[n.state.indexHisto].date)), void n.setState({ indexHisto: Math.abs((n.state.indexHisto - 1) % n.props.dateHisto.length) })) : "apres" == e ? (n._read_indicators(null, new Date(n.props.dateHisto[n.state.indexHisto].date)), void n.setState({ indexHisto: Math.abs((n.state.indexHisto + 1) % n.props.dateHisto.length) })) : void 0 }, n.render_header = function () { var e = n.state, t = e.header, r = e.body; return l.default.createElement("tr", { className: "bg-primary" }, l.default.createElement("th", { colSpan: "2" }, " ", l.default.createElement("i", { className: "fa fa-edit" })), t.map(function (e, o) { return [l.default.createElement("th", null, e.label), l.default.createElement("th", { onClick: n.orderColumn.bind(n, t, r, o) }, "desc" === e.orderBy ? l.default.createElement("button", { className: "btn btn-primary btn-xs fa fa-caret-up" }) : l.default.createElement("button", { className: "btn btn-primary btn-xs fa fa-caret-down" }))] })) }, n.modal_handleOpen = function (e) { n.setState(e) }, n.modal_switch_isOpen = function (e) { n.setState(e) }, n.delete_line = function (e) { var t = n; x.default.post(g.api.address + "/indicateurs/_delete", { id: e }).then(function (e) { x.default.post(g.api.address + "/indicateurs/_read", { sector: t.props.secteur, site: t.props.site }).then(function (e) { t.setState({ needValidation: !0, body: e.data.body, modal: { isOpen: !1, form: {} } }) }).catch(function (e) { console.log(e) }) }) }, n.disableWeekends = function (e) { for (var e = e, t = n.props.dateHisto.length - 1; t >= 0; t--) { var r = new Date(n.props.dateHisto[t].date); if (console.log(e), r.getDate() == e.getDate() && r.getMonth() == e.getMonth() && r.getFullYear() == e.getFullYear()) return !1 } return !0 }, n.modal_submit = function (e, t) { var r = n.state.body, o = n; r[t] = (0, y.merge)(r[t], e), x.default.post(g.api.address + "/indicateurs/_update", Object.assign({}, e, { sector: o.props.secteur, site: o.props.site })).then(function (e) { x.default.post(g.api.address + "/indicateurs/_read", { sector: o.props.secteur, site: o.props.site }).then(function (e) { console.log(e.data), o.setState({ needValidation: !0, body: e.data.body, modal: { isOpen: !1, form: {} } }) }).catch(function (e) { console.log(e) }) }) }, n.modal_submit_addIndicateur = function (e, t) { var r = n, o = { isOpen: !1, form: { sector: n.props.secteur, site: n.props.site, indicator: null, objective: null, cotation: null, comment: null, id_item: null, id_domain: null } }; x.default.post(g.api.address + "/indicateurs/_create", Object.assign({}, e, { sector: r.props.secteur, site: r.props.site })).then(function (e) { x.default.post(g.api.address + "/indicateurs/_read", { sector: r.props.secteur, site: r.props.site }).then(function (e) { r.setState({ needValidation: !0, body: e.data.body, new_indicateur: o }) }).catch(function (e) { console.log(e) }) }).catch(function (e) { console.log(e) }) }, n.render_body = function () { var e = n.state, t = e.body, r = e.header; return t.map(function (e, t) { var o = { modal: { isOpen: !0, form: e, form_key: t } }; return l.default.createElement("tr", { key: t, onDoubleClick: n.modal_handleOpen.bind(n, o) }, l.default.createElement("th", { className: "bg-danger", onClick: n.delete_line.bind(null, e.id) }, l.default.createElement("i", { className: "btn btn-xs fa fa-remove" })), l.default.createElement("th", { className: "bg-primary", onClick: n.modal_handleOpen.bind(n, o) }, t), r.map(function (t, n) { return l.default.createElement("td", { colSpan: "2", key: n }, " ", e[t.column]) })) }) }, n.state = { indexHisto: null, dateHisto: null, dateIndicateur: null, needValidation: !1, header: (0, v.format_header)(e.header), body: e.body, modal: { isOpen: !1, form_key: null, form: { sector: e.secteur, site: e.site, indicator: "", objective: "", cotation: "", comment: "", id_item: "", id_domain: "", id_guide: "" } }, new_indicateur: { isOpen: !1, form: { sector: e.secteur, site: e.site, indicator: null, objective: null, cotation: null, comment: null, id_item: null, id_domain: null, id_guide: null } } }, n } return i(t, e), s(t, [{ key: "componentWillReceiveProps", value: function (e) { this.setState({ body: e.body }) } }, { key: "render", value: function () { var e = { modal: { isOpen: !1, form: {}, form_key: null } }, t = { new_indicateur: { isOpen: !1, form: { sector: this.props.secteur, site: this.props.site, indicator: "", objective: "", cotation: "", comment: "", id_item: "", id_domain: "", id_guide: "" } } }; return l.default.createElement("div", null, this.state.dateHisto, l.default.createElement(m.ButtonToolbar, null, l.default.createElement(m.Button, { bsStyle: "primary", onClick: this._nextDate.bind(null, "avant") }, " ", "<", " "), l.default.createElement(m.Button, { bsStyle: "primary", onClick: this._nextDate.bind(null, "apres") }, " ", ">", " ")), l.default.createElement(m.Table, { striped: !0, condensed: !0, hover: !0 }, l.default.createElement("thead", null, this.render_header()), l.default.createElement("tbody", null, this.render_body())), l.default.createElement(m.ButtonToolbar, null, l.default.createElement(m.Button, { bsStyle: "primary", onClick: this.modal_handleOpen.bind(null, { new_indicateur: { isOpen: !0, form: t.new_indicateur.form } }) }
                        64x64
                        nooo
                        Date (GMT) : 2019-11-26 13:52:35 (UTC +0000)
                        Date local : Tue Nov 26 2019 14:56:17 GMT+0100 (heure normale d

                        • Bonjour, je souhaiterais avoir l'âge calculé dans une case a partir de deux dates dans formulaire PDF (date de naissance et une date lors de l'entretient avec l'intéressé. J'ai cherché sur le web et j'ai consulté plusieurs script mais sans succès. Merci d'avance.
                          64x64
                          Djamil
                          Date (GMT) : 2021-04-26 11:14:07 (UTC +0000)
                          Date local : Mon Apr 26 2021 12:20:05 GMT+0100 (UTC+01:00)
                          • Salut, Je n’en ai aucune idée ! Je travaille avec des formulaires HTML beaucoup plus flexibles (et libre), jamais avec des PDF dynamiques à la merci d'un plug-in. Il n'y a d'ailleurs aucune section PDF sur ce site. C'est à Adobe qu'il faudrait demander. Probablement dans le SDK de PDf https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf Un document PDF dynamique utilise certainement le moteur JavaScript du navigateur, mais à mon avis, c'est codé directement dans le PDF. Ce que je comprends, le format de date PDF n'est pas le même que celui du JavaScript alors il faut faire une conversion avant le calcul. Ensuite, c'est du simple JavaScript : <script> function twRetourneAge(dNaissanceTemp,dAujourdhuiTemp) { // Nombre de mois var nMois = dAujourdhuiTemp - dNaissanceTemp.getTime(); // conversion des mois en date var dDifference = new Date(nMois); // Nombre d'années var nAnnees = dDifference.getUTCFullYear(); // Calcul de l'âge // En JavaScript, les dates en nombre de millisecondes // sont calculées depuis le 1er janvier 1970... var nAge = Math.abs(nAnnees - 1970); return nAge; } var dNaissance = new Date("06/15/1980"); var dAujourdhui = new Date("06/15/2021"); document.write("Votre age: " + twRetourneAge(dNaissance,dAujourdhui) + " ans"); </script>
                            64x64
                            oznog
                            Date (GMT) : 2021-04-26 12:04:51 (UTC +0000)
                            Date local : Mon Apr 26 2021 08:10:51 GMT-0400 (heure avancée d


                          • Bonjour a tous, Dans le cadre d'une mission, je travaille sur un excel qui répertorie des données durant 24h toutes les 5 minutes, exemple: 26/05/21 09:05:00 26/05/21 09:10:00 J'ai coder plusieurs choses dessus mais j'aimerais maintenant pouvoir tout paramétrer en fonction des minutes et non des cases. Est-ce possible ? Lui faire comprendre que de 14:55:00 à 16:50:00 il se passe un certain événement. J'ai aussi un second problème qui fausse mes stats, qui peut être réglé facilement mais je suis bloqué (je découvre le javascript): Toutes les heures il y a un relevé de données de type 26/05/21 10:04:34, cela fausse donc toutes mes modifications de données car je les ai paramétrés pour toute les 5 minutes. J'aimerais que lorsque les secondes sont différentes de 0, on met une certaine valeur a 0 pour ne pas que ça fausse mes résultats. Merci d'avance. Cordialement.
                            64x64
                            BlondJesus
                            Date (GMT) : 2021-05-26 07:09:54 (UTC +0000)
                            Date local : Wed May 26 2021 09:15:43 GMT+0200 (heure d’été d’E

                            • Bonjour, Savez vous comment désactiver des jours spécifiques (comme le 25/12/2021;23/12/2021) dans un imput date Merci de votre aide
                              64x64
                              Cyril
                              Date (GMT) : 2021-12-14 19:33:14 (UTC +0000)
                              Date local : Tue Dec 14 2021 20:33:11 GMT+0100 (CET)
                              • Salut, La meilleure méthode est de créer ton propre calendrier qui empêche de sélectionner les dates en questions. L'usager saura avant de cliquer sur la date qu'elle n'est pas valide... Sinon, avec un champ de saisie HTML5 de type Date, tu as trois embuches "majeures" avec ton problème! 1. Convertir une date saisie par un champ HTML5 de type date on objet JavaScript de type date. Le truc, c'est ajouter T00:00 au bout !! let dDate = new Date(this.value+"T00:00"); 2. Comparer deux objets de type date, car comparer simplement deux dates ne fonctionne pas. dDate.toString() === dDate1.toString() 3. Empêcher la date invalide de s'afficher dans la saisie. Ma méthode ne permet pas de return false ni de preventDefault(). Je garde simplement la dernière valeur dans une variable. dDateTemp = this.value; Le code complet : HTML ------ Vaut mieux utiliser un format (partern) aaaa/mm/jj quand on manipule des dates... <input type="date" id="oDate" placeholder="Entrer une date" pattern="\d{1,2}/\d{1,2}/\d{4}" /> JavaScript ---------- let oSaisieDate = document.queryselector("#oDate"); let dDateTemp; oSaisieDate.addEventListener("input", function () { let dDate = new Date(this.value+"T00:00"); var dDate1 = new Date("2021/12/23"); var dDate2 = new Date("2021/12/25"); if (dDate.toString() === dDate1.toString()||dDate.toString() === dDate2.toString()) { oSaisieDate.value = dDateTemp; } else { dDateTemp = this.value; } }); Il faudrait idéalement ajouter à ce code une boucle pour tester un nombre aléatoire de dates invalides dans une matrice (array).
                                64x64
                                oznog
                                Date (GMT) : 2021-12-14 22:55:04 (UTC +0000)
                                Date local : Tue Dec 14 2021 17:54:59 GMT-0500 (heure normale d
                                • // Merci, mais impossible de faire fonctionner ce code. // Une autre idée, comment créer une alerte sur la sélection dune date précise (25/12/2021) ? // Merci de votre aide Salut, Le code fonctionne parfaitement et ton « impossible de faire fonctionner ce code » ne donne malheureusement aucune information pour aider à comprendre pourquoi vous n'y arrivez pas. Quand à la deuxième idée, c'est précisément le même code, il suffit de changer la date... Je ne peux pas t'aider d'avantage.
                                  64x64
                                  oznog
                                  Date (GMT) : 2021-12-19 14:36:38 (UTC +0000)
                                  Date local : Sun Dec 19 2021 09:36:39 GMT-0500 (heure normale d
                                  • Bonjour, Merci de m’apporter ton aide, mais tu cites que l'usager saura avant de cliquer sur la date, elle ne sera pas valide, en écrivant ton code toutes les dates sont bien visible.
                                    64x64
                                    Cyril
                                    Date (GMT) : 2021-12-20 14:21:23 (UTC +0000)
                                    Date local : Mon Dec 20 2021 15:21:22 GMT+0100 (CET)
                                    • Exact, pour LA MEILLEUR SOLUTION qui consiste à générer ton propre calendrier pour saisir la date, un peu comme « FullCalendar » (https://fullcalendar.io/). Dans mon exemple, j'utilise la saisie HTML5 de type date qui génère sont propre calendrier avec le défaut d'afficher toutes les dates...
                                      64x64
                                      oznog
                                      Date (GMT) : 2021-12-20 14:49:42 (UTC +0000)
                                      Date local : Mon Dec 20 2021 09:49:40 GMT-0500 (heure normale d





                              • Bonjour, Je me permets de solliciter de l'aide car je dois paramétrer un formulaire pour permettre à des utilisateurs de s'inscrire mais que ceux-ci aient la majorité au moment de l'inscription. Auquel cas, le formulaire ne sera pas valide. const birthdate = document.getElementById('birthdate'); const birthdateError = birthdate.nextElementSibling; const regExBirthdate = /^([0-9]{4})-((0)[0-9]|(1)[0-2])-([0-2][0-9]|(3)[0-1])$/; const ladate = new Date() const dateDujour = (ladate.getFullYear() + "-" + (ladate.getMonth() + 1) + "-" + ladate.getDate()); console.log(new Date(dateDujour) + (birthdate.value)); if (!regExBirthdate.test(birthdate.value) && (new Date (birthdate.value) < new Date (dateDujour))) { birthdateError.textContent = 'Vous devez entrer votre date de naissance'; birthdateError.classList.add('error'); } else { birthdateError.classList.remove('error'); birthdateError.textContent = ''; }
                                64x64
                                Jules
                                Date (GMT) : 2021-12-15 00:01:44 (UTC +0000)
                                Date local : Wed Dec 15 2021 01:01:41 GMT+0100 (heure normale d
                                • Salut, Plus simple, il suffit d’additionner 18 à l'année de la date de naissance : dDateG.setYear(dDateG.getFullYear() + 18 let dDateG = new Date(document.getElementById('birthdate').value+"T00:00"); let ladate = new Date(); if (dDateG.setYear(dDateG.getFullYear() + 18)<ladate.getTime()) { // Valide }
                                  64x64
                                  oznog
                                  Date (GMT) : 2021-12-15 02:16:32 (UTC +0000)
                                  Date local : Tue Dec 14 2021 21:16:28 GMT-0500 (heure normale d
                                  • Merci, mais impossible de faire fonctionner ce code. Une autre idée, comment créer une alerte sur la sélection dune date précise (25/12/2021) ? Merci de votre aide
                                    64x64
                                    Cyril
                                    Date (GMT) : 2021-12-19 10:32:16 (UTC +0000)
                                    Date local : Sun Dec 19 2021 11:32:16 GMT+0100 (CET)



                                • Bonjour, J'aimerais résoudre ce problème et pouvoir dire quand est-ce-que les dates (et heures) sont disponibles. Aurais-tu une idée de la marche à suivre pour réaliser la méthode Event.prototype.availabilities stp ? Même sans code, mais juste les étapes à faire pour afficher le résultat sous forme de tableau. Merci beaucoup de ton retour. Le lien en question se trouve ici: https://github.com/AndrianD/calendar
                                  64x64
                                  andrianD
                                  Date (GMT) : 2022-10-04 20:34:39 (UTC +0000)
                                  Date local : Tue Oct 04 2022 22:34:38 GMT+0200 (heure d’été d’E
                                  • Salut, C'est effectivement une partie de code qui permet de comparer des dates avec les dates d'événements. Mais il y a quelques erreurs. 1. Il y a confusion entre les variables startDate, endDate et les attributs de ton objet « Event ». Change le nom de tes variables dans le main.js. Même chose avec les variables fromDate, toDate change de nom de variable. Le problème c'est surtout l'isolation des variables. 2. Ensuite, quand tu fais ton traitement, ajoute le nom de l'objet que tu boucles (data) : while (data.startDate <= data.endDate)... 3. Il manque du code, il ne compare que les dates avec « recurring » à True? Et donc en testant uniquement le nom du jour de la semaine, lundi avec lundi, etc., les heures et les minutes?!? Pas la date! En fait aucune date avec le paramètre « recurring » à False » ne passe le test. Il y a un paramètre « opening » qui lui aussi ne sert à rien! En gros c'est ça. Ciao
                                    64x64
                                    oznog
                                    Date (GMT) : 2022-10-05 02:02:10 (UTC +0000)
                                    Date local : Tue Oct 04 2022 22:02:09 GMT-0400 (heure avancée d


                                  • Bonjour, Je dois extraire un fichier via une base de données. L'extraction doit se faire tous les jours et le nom du fichier de sortie doit être richelieu_thematiques_b_yyymmdd.csv. Comment dois écrire le code pour ajouter la date avec le format demandé? Voici un bout du code: // Nombre de jour de décallage avec la date du jour int dayOffset = 0; String mappername = "Main Theme"; String listname = "THEMATIQUES AMERICA ESG"; Date today = new Date(); DayUnitRepetitionRule repetitionRule = PartFactory.buildPart(DayUnitRepetitionRule.class); repetitionRule.setNumberOfDays(dayOffset); Date reportDate = repetitionRule.computePreviousDate(today, StandardFinancialCalendar.Type.FULL.getFinancialCalendar(), BusinessDayConvention.PRECEDING); //Date startDate = DateUtils.newDate(28, 06, 2019); //Date endDate = DateUtils.newDate(28, 06, 2019); // Commenter pour un export de reprise Date startDate = reportDate; Date endDate = reportDate; SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); //String fileName = "F:/DWH/In/Allocations_GP" + format.format(startDate) + ".csv"; String fileName = "/nxdt/data/100m/richelieu_thematiques_b_" & format.format(startDate) & ".csv";
                                    64x64
                                    Arichelieu
                                    Date (GMT) : 2023-04-20 16:44:03 (UTC +0000)
                                    Date local : Thu Apr 20 2023 18:44:01 GMT+0200 (heure d’été d’E

                                    • Bonjour, Comment ajouter une date dynamique dans un nommage de fichier qui est généré automatiquement via un batch. Mon code: // Nombre de jour de décallage avec la date du jour int dayOffset = 0; String mappername = "Main Theme"; String listname = "THEMATIQUES AMERICA ESG"; Date today = new Date(); DayUnitRepetitionRule repetitionRule = PartFactory.buildPart(DayUnitRepetitionRule.class); repetitionRule.setNumberOfDays(dayOffset); Date reportDate = repetitionRule.computePreviousDate(today, StandardFinancialCalendar.Type.FULL.getFinancialCalendar(), BusinessDayConvention.PRECEDING); //Date startDate = DateUtils.newDate(28, 06, 2019); //Date endDate = DateUtils.newDate(28, 06, 2019); // Commenter pour un export de reprise Date startDate = reportDate; Date endDate = reportDate; SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); //String fileName = "F:/DWH/In/Allocations_GP" + format.format(startDate) + ".csv"; String fileName = "/nxdt/data/100m/richelieu_thematiques_b_" & format.format(startDate) & ".csv";
                                      64x64
                                      Arichelieu
                                      Date (GMT) : 2023-04-20 16:47:35 (UTC +0000)
                                      Date local : Thu Apr 20 2023 18:47:33 GMT+0200 (heure d’été d’E
                                      • Salut, Exactement comme vous faites! Mais si c'est en JavaScript, c'est avec un plus (+) et non pas &. Maintenant, je ne sais pas ce que contient la variable « startDate », vous utilisez un prototype JavaScript perso. Et une méthode louche « format.format » ?? Mais si « startDate » est une véritable date, personnellement je construirais la chaine manuellement : startDate.getYear()+'-'+startDate.getMonth()+'-'+startDate.getDate()+'-'+startDate.getHours()+'-'+startDate.getMinutes()& '.csv'; Bonne journée.
                                        64x64
                                        oznog
                                        Date (GMT) : 2023-04-20 17:01:38 (UTC +0000)
                                        Date local : Thu Apr 20 2023 13:01:35 GMT-0400 (heure avancée d


                                      • bonjour, est-il possible de creer un alert, lors de la selection d'un jour precis dans un input type date merci de votre retour
                                        64x64
                                        Cyril
                                        Date (GMT) : 2023-11-06 21:43:25 (UTC +0000)
                                        Date local : Mon Nov 06 2023 22:43:25 GMT+0100 (heure normale d
                                        • Salut Cyril, Tu récupères la date en JavaScript http://www.trucsweb.com/tutoriels/javascript/js-queryselector/ Ensuite, il y a plusieurs méthodes de comparaison, <, >, .toString(), .valueOf() etc. Les deux derniers comparent aussi l'heure et la seconde, pas utiles. Je te conseille la méthode suivante : Tu compares l'année, le mois et le jour tout simplement : <input type="date" id="oChampDate1" value="2023-11-06"> <input type="date" id="oChampDate2" value="2023-12-06"> <input type="date" id="oChampDate2" value="2023-11-06"> Premièrement, convertir une date à partir d'un formulaire n'est pas facile, par exemple mon navigateur retourne un jour de moins?? C'est sans doute le mélange du mois (basé 0) et de la langue française du format... Enfin, c'est un bogue. Alors utilise la petite fonction twParseDate() qui convertie la date en format 2023-11-06 en objet JavaScript date. <input type="date" id="oChampDate1" value="2023-11-06"> <input type="date" id="oChampDate2" value="2023-12-06"> <input type="date" id="oChampDate2" value="2023-11-06"> <script> // Date refusée var maDateRefusee = new Date(`2023,11,06`); // Capture tous les éléments input de type « date » let oElements = document.querySelectorAll(`[type="date"]`); // Boucle tous les élements oElements.forEach(function (oDate) { // Ajoute un écouteur blur oDate.addEventListener(`blur`, function(evenement) { // Récupère la date de l'élément et la convertie en date let maDate = twParseDate(evenement.target.value); // Compare l'année, le mois et le jour if (maDate.getDate()==maDateRefusee.getDate()&&maDate.getMonth()==maDateRefusee.getMonth()&&maDate.getYear()==maDateRefusee.getYear()) { // Si c'est égal, c'est la même date... alert(`Date refusée`); } }) }) function twParseDate(s) { // Fonction pour convertir une chaine 2023-11-06 en objet javascript date var b = s.split(/\D/); return new Date(b[0], --b[1], b[2]); } </script> Autres exemples : // La soustraction fonctionne (0 indique la même date), mais ce n'est pas toujours fiable... console.log(`Résultat : `+(maDateRefusee - maDate)); // Compare la date et le time console.log(`Comparaison : `+Date.parse(evenement.target.valueAsDate)+'==='+Date.parse(maDateRefusee));
                                          64x64
                                          oznog
                                          Date (GMT) : 2023-11-06 23:17:57 (UTC +0000)
                                          Date local : Mon Nov 06 2023 18:17:56 GMT-0500 (heure normale d
                                          • Bonjour merci d’avoir pris le temps de répondre. Mais je n’arrive pas à faire fonctionner ce code, pas de boîte de dialogue à la sélection de la date refusée (ni a j+1 ou j-1). Mon navigateur est chrome
                                            64x64
                                            Cyril
                                            Date (GMT) : 2023-11-07 19:56:05 (UTC +0000)
                                            Date local : Tue Nov 07 2023 20:56:04 GMT+0100 (heure normale d
                                            • Ily avais unepetite coquille, .queryselectorAll s'écrit .queryselectorAll avec un « S » majuscule... J'ai fait un exemple en ligne. http://trucsweb.com/tutoriels/Javascript/tw276/date-refuses.html
                                              64x64
                                              oznog
                                              Date (GMT) : 2023-11-07 20:18:27 (UTC +0000)
                                              Date local : Tue Nov 07 2023 15:18:26 GMT-0500 (heure normale d
                                              • Magnifique ! Merci, très bonne soirée
                                                64x64
                                                Cyril
                                                Date (GMT) : 2023-11-07 20:55:59 (UTC +0000)
                                                Date local : Tue Nov 07 2023 21:55:58 GMT+0100 (heure normale d

                                                • Une dernière petite chose j’aimerais que cette date refusée ne soit pas validée dans imput type date Merci
                                                  64x64
                                                  Cyril
                                                  Date (GMT) : 2023-11-07 21:00:19 (UTC +0000)
                                                  Date local : Tue Nov 07 2023 22:00:18 GMT+0100 (heure normale d

                                                  • Bonsoir, Je ne sais pas si tu as eu mon dernier message. Merci de ton aide, ce code fonctionne, mais pas sur tablette. Aussi est il possible de ne pas valider la date refusée ? Car elle reste validée dans l’input Bonne soirée
                                                    64x64
                                                    Cyril
                                                    Date (GMT) : 2023-11-08 21:18:35 (UTC +0000)
                                                    Date local : Wed Nov 08 2023 22:18:33 GMT+0100 (heure normale d
                                                    • Salut, Remplace alert(`Date refusée`); Par evenement.target.value=``; Sinon, la validation peut être faite lors de l'envoi du formulaire au lieu du « blur » sur le champ. De cette façon, tu peux empêcher le formulaire d'être envoyé (event.stopPropagation()) et afficher un message d'erreur sous le champ en question...
                                                      64x64
                                                      oznog
                                                      Date (GMT) : 2023-11-09 14:18:19 (UTC +0000)
                                                      Date local : Thu Nov 09 2023 09:18:18 GMT-0500 (heure normale d






                                            Ajouter un commentaire
                                            Votre adresse de courriel ne sera pas publiée. * L'astérisque indique les champs obligatoires.
                                            Votre évaluation du tutoriel

                                            9.75/10 sur 4 revues.
                                                   Visites : 160001 - Pages vues : 196783
                                            X

                                            Trucsweb.com Connexion

                                            Connexion

                                            X

                                            Trucsweb.com Mot de passe perdu

                                            Connexion

                                            X

                                            Trucsweb.com Conditions générales

                                            Conditions

                                            Responsabilité

                                            La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

                                            Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

                                            Droit applicable et juridiction compétente

                                            Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

                                            X

                                            Trucsweb.com Trucsweb

                                            X

                                            Trucsweb.com Glossaire

                                            X

                                            Trucsweb.com Trucsweb

                                            X

                                            Trucsweb.com Trucsweb

                                            Conditions

                                            Aucun message!

                                            Merci.

                                            X
                                            Aucun message!
                                            X

                                            Trucsweb.com Créer un compte

                                            Créer un compte

                                            .
                                            @