IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Temps écoulé entre 2 dates


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut Temps écoulé entre 2 dates
    Bonjour,

    je vous écris parce que je n'en peux plus Je me prends la tête avec deux dates là et j'en ai tout simplement marre. Je ne comprends pas exactement où ça va pas et ça m'énèrve

    Je récapitule :
    > j'ai une date d'inscription sur le site
    > je veux le temps écoulé depuis cette date d'inscription

    > donc temps écoulé entre date d'inscription et aujourd'hui, en jours/heures/minutes.

    J'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    var daydate = new Date();
    var sincetime = daydate.getTime();
    var elements = $$('.since_date');
    for(i=0;i<elements.length;i++) {
     
    	var inscriptiondate = elements[i].previous().innerHTML; // jj/mm/aa
    	var inscriptionheure = elements[i].next().value; // hh/ii/ss
     
    	inscriptiondate = giveTimestamp(inscriptiondate,inscriptionheure); 
     
    	// timestamp de la différence
    	var sincedate = inscriptiondate - sincetime;
     
    	sincedate = sincedate/86400000; // nb de jours
     
    	var nbjours = Math.floor(sincedate); // différence positive
    	nbjours += ' jours';
     
    	// Récupération heures et minutes
    	var strsince = sincedate.toString();
    	var splitdate = strsince.split('.');
    	var hours = (sincedate-splitdate[0])*24; // on enlève le nombre de jours et on transforme en heures
     
    	hours = hours.toString();
    	var splith = hours.split('.');
    	var minutes = (hours-splith[0])*60;//console.log(minutes); // on enlève le nombre d'heures et on transforme en minutes
     
    	sincedate = nbjours+' '+Math.floor(hours)+'h '+Math.floor(minutes)+'m';
     
    	elements[i].update(sincedate);
    	elements[i].innerHTML;
    }
     
    function giveTimestamp(adate,anhour) {
    	var splitdate = adate.split('/');
    	var splithour = anhour.split('/');
     
    	var date = new Date();
    	date.setFullYear(adate.substr(6,4));
    	date.setMonth(adate.substr(3,2));
    	date.setDate(adate.substr(0,2));
    	date.setHours(splithour[0]);
    	date.setMinutes(splithour[0]);
    	date.setSeconds(splithour[0]);
    	date.setMilliseconds(0);
     
    	return date.getTime();
    }
    Je récupère ma date et mon heure d'inscription (inscriptiondate et inscriptionheure). Et j'ai l'impression qu'ensuite je me mélange bien les pinceaux dans tout ça

    Un peu d'aide serait vraiment la bienvenue ! Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Pourquoi se perdre dans des substr ???

    http://javascript.developpez.com/faq...te#nombreJours
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut

    les mois commencent à 0 et setfullYear commence en an 0

  4. #4
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Merci pour vos réponses.

    Voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
    var daydate = new Date();
    var sincetime = daydate.getTime();
    var elements = $$('.since_date');
    for(i=0;i<elements.length;i++) {
     
    	var inscriptiondate = elements[i].previous().innerHTML; // jj/mm/aa
    	var inscriptionheure = elements[i].next().value; // hh/ii/ss
     
    	var splitdate = inscriptiondate.split('/');
    	var splithour = inscriptionheure.split('/');
    	inscriptiondate = new Date(splitdate[2],splitdate[1],splitdate[0],splithour[0],splithour[1],splithour[2]);
     
    	var diffdate = diffdate(daydate,inscriptiondate);
     
    	elements[i].update(diffdate);
    	elements[i].innerHTML;
    }
     
    function diffdate(d1,d2){
    	var WNbJours = d2.getTime() - d1.getTime();
    	return Math.ceil(WNbJours/(1000*60*60*24));
    }
    J'obtiens comme erreur : Uncaught TypeError: number is not a function sur la ligne var diffdate = diffdate ...

    Et pour la première date que j'ai : le 20/03/2012, j'obtiens une différence de 45 jours avec aujourd'hui

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    et diffdate() est déclarée ou ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Entre aujourd'hui et le 20 avril, ca fait bien 45 jours

  7. #7
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    et diffdate() est déclarée ou ?
    juste en dessous de mon for. Et tout ça se trouve dans un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Event.observe(document, 'dom:loaded', function () {
    Matthieu2000 > oui mais j'avais le mois de mars, j'avais oublié l'histoire des mois qui débutent à 0 et non 1 je croyais l'avoir pris en compte mais j'ai dû effacer cette partie là !

  8. #8
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Bon, c'est ok, ça fonctionne. J'obtiens un résultat en jours, il faudrait que j'ai le détail en jours, heures et minutes !

    C'est possible de récupérer les chiffres après la virgule quand on calcule le nombre de jours ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul Temps écoulé entre 2 dates
    Par gweddy dans le forum iReport
    Réponses: 4
    Dernier message: 18/12/2017, 16h14
  2. Calculer le temps écoulé entre deux dates
    Par ramoucha23 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 25/08/2016, 17h48
  3. [XL-2007] Calculer le temps écoulé entre 2 dates
    Par marie-dominique dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/01/2012, 17h37
  4. Temps écoulé entre 2 dates et 2 horaires
    Par christ-94 dans le forum VBA Access
    Réponses: 8
    Dernier message: 25/01/2009, 17h53
  5. Temps écoulé entre 2 dates
    Par casafa dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 23/12/2005, 03h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo