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

Langage PHP Discussion :

[Dates] Calculer la différence entre la date C et C-1


Sujet :

Langage PHP

  1. #1
    Membre chevronné
    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 013
    Points : 1 763
    Points
    1 763
    Par défaut [Dates] Calculer la différence entre la date C et C-1
    je n'arrive pas à calculer le nombre de jours entre 2 dates entre C et C-1. C et C-1 sont en timestamp pour que je fasse la différence entre ces 2 dates puis je convertis la difference en chaine de caractère.


    voila mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "\nC   avec fonction date :".date('Y-m-d H:i',$date_facture_C->get_timestamp());
    echo "\nC_1 : ".date ('Y-m-d', $R_impaye['C_1']);
    $NJP = $date_facture_C->get_timestamp() - $R_impaye['C_1'];		
    echo "\nNJP = ".date('Y-m-d',$NJP)." = ".date('Y-m-d', $date_facture_C->get_timestamp())." - ".date('Y-m-d', $R_impaye['C_1']);

    et ce que j'obtiens
    C avec fonction date :2006-11-01 00:00
    C-1 : 2006-10-22
    NJP = 1970-01-11 = 2006-11-01 - 2006-10-22


    pourquoi est ce que j'obtiens 1970-01-11 alors que je m'attendais à avoir 1970-01-10 soit 10 jours ...

    Le mois d'octobre contenant 31 jours, le 1 er novembre est dans le 32ème jours. Donc si on fait la différence on devrait obtenir 32-22 = 10 jours.

    Ai je fais une erreur ?

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    tu veux simplement le nombre de jours entre deux dates ?
    si c'est le cas, il suffit de récupérer tes deux timestamp, de les soustraire, puis de diviser le résultat par (3600 * 24) :

    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
    <?php
    function calcule_nbre_jours ($date1, $date2) {
     
    	$arr_date1 = explode("/", $date1);
    	$time_a_comparer1 = mktime(0, 0, 0, $arr_date1[1], $arr_date1[0], $arr_date1[2]);
     
    	$arr_date2 = explode("/", $date2);
    	$time_a_comparer2 = mktime(0, 0, 0, $arr_date2[1], $arr_date2[0], $arr_date2[2]);
     
    	$difference = $time_a_comparer1 - $time_a_comparer2;
     
    	if ($difference < 0) {
    		echo 'Il y a : ';
    		$difference = abs($difference);
    	} else {
    		echo 'Dans : ';
    	}
    	$nbre_jour = intval($difference / 86400);
    	echo $nbre_jour.' jours';
    }
     
    calcule_nbre_jours('18/02/1981', '21/02/2006');
    ?>
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre chevronné
    Profil pro
    MOA
    Inscrit en
    Décembre 2002
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : MOA

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 013
    Points : 1 763
    Points
    1 763
    Par défaut
    hummm, tu veux dire multiplier par 3600 * 24

    je comprends ta démarche. L'unité de temps utilisé par le timsestamp étant la seconde, tu me proposes de multiplier par 3600 * 24h

  4. #4
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    non non, je parle bien de diviser

    Soit d1 ma différence en seconde (le timestamp s'exprime en secondes donc secondes - decondes = secondes)

    - 3600 secondes dans une heure -> D1 / 3600 = D2, ma différence en heures
    - 24 heures par jour -> D2 / 24 = D3, ma différence en jours
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tout ceci est expliqué dans la faq (en complément de l'explication de Titoumimi) dans cette Q/R : Comment obtenir le nombre de jours écoulés entre deux dates ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/07/2010, 09h53
  2. Calculer la différence entre deux dates
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/12/2007, 08h27
  3. [Access] Calculer la différence entre 2 dates
    Par subnox dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/08/2007, 14h16
  4. [Formule] Calculer la différence entre 2 dates
    Par titof90 dans le forum Excel
    Réponses: 1
    Dernier message: 22/05/2007, 17h07
  5. [Dates] Calculer la différence entre 2 dates
    Par cyberdevelopment dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2007, 13h34

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