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] faire la difference entre 2 dates [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 240
    Points : 60
    Points
    60
    Par défaut [Dates] faire la difference entre 2 dates
    Bonjour, j'ai deux dates que je prend d'une BDD et que je met dans une variable php! J'aimerai faire ensuite la difference entre ces deux dates. Comment puis-je faire?

  2. #2
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut
    Le mieux c'est d'avoir leur équivalent time(), surtout si tu ne dois pas afficher la différence.
    Il doit y avoir mktime() peut être pour ça, aussi.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 240
    Points : 60
    Points
    60
    Par défaut
    j'ai pas tres bien compris

  4. #4
    Membre éclairé
    Avatar de karami
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2005
    Messages : 343
    Points : 668
    Points
    668
    Par défaut
    J'espere que ça peut t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2) {
    $timestamp = mktime(0,0,0, $mois, $jour, $an); 
    $timestamp2 = mktime(0,0,0, $mois2, $jour2, $an2); 
     
    $diff = floor(($timestamp - $timestamp2) / (3600 * 24)); 
    return $diff;
     
    }

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 240
    Points : 60
    Points
    60
    Par défaut
    non mais moi j'ai déja deux variables venant d'une bdd qui contient les deux dates! ce programme ne correspondrai pas

  6. #6
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 85
    Points : 89
    Points
    89
    Par défaut
    Tu peux aussi utiliser directement les fonctions de dates et d'heures de ta BDD

  7. #7
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut
    La fonction time() donne la date unix, c'est une suite de chiffre genre 1215548478 qui donne la date en seconde depuis je sais pas quand c'est dans les années 70 je crois.

    Donc si tu dois savoir quelle est la date la plus ancienne de deux, si tu la date unix c'est du gateau.
    Perso dans ma base j'ai deux champs, un datetime() avec la date au format "humain" et un champ int avec la date au format time(). La première me sert pour l'affichage, la seconde pour les calculs et classements.

  8. #8
    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
    SI tes valeurs sortent de la bdd je te conseillerai d'utiliser les fonctions date bdd comme cela a été dit plus haut.

    Jettes un oeil à ceci : Comment extraire des enregistrements appartenant à un intervalle de dates ?

    Te fies pas à la question lol

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 240
    Points : 60
    Points
    60
    Par défaut
    mais kerod je n'ai pas trouvé la solution a mon probleme!
    j'ai une variable contenant! $var1=2006-05-01 et une autre: $var2=2006-04-02! je veu juste la difference en nombre de jours

  10. #10
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 85
    Points : 89
    Points
    89
    Par défaut
    DATEDIFF en mysql...

    Si tu n'utilises pas mysql, voici un tableau de correspondances entre les differents SGBD

    http://fadace.developpez.com/sgbdcmp/fonctions/

  11. #11
    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
    Tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($annee, $mois, $jour) = explode('-', $date);
    pour récupérer le jour, puis tu fais la différence entre les $jour

  12. #12
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut
    Si comme j'ai dit trois posts plus haut tu utilises time() alors c'est du gateau.

    **edit**
    Encore que ça te donnera le nombre de jour au sens de 24h et pas au sens du calendrier, avec le passage d'un jour à l'autre à minuit.

  13. #13
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 85
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par Kerod
    Tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($annee, $mois, $jour) = explode('-', $date);
    pour récupérer le jour, puis tu fais la différence entre les $jour
    euh, si tu ne fais que la difference sur le nombre de jour cela ne marchera pas...sauf si les dates appartiennent au meme mois et à la meme année !

  14. #14
    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
    Voici un petit exemple de script que j'avais crée il y a....temps

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $less_day = (date('U',mktime(0,0,0,moisfutur,1,anneefutur)) - date('U',mktime(0,0,0,date("n"),date("j"),date("Y")))) / 86400;
    Il suffit de remplacer les valeur par tes valeurs

    Ce code faisait ceci : Récupère la date du jour ainsi que la date à venir, les transforme en time() et fait la différence entre les deux.
    Ce qui te donne le nombre de jours au final

Discussions similaires

  1. [VBA] Calculer la différence entre deux dates
    Par T'chab dans le forum Access
    Réponses: 13
    Dernier message: 11/05/2006, 15h12
  2. difference entre deux dates
    Par nizniz dans le forum Oracle
    Réponses: 3
    Dernier message: 09/05/2006, 11h54
  3. Réponses: 2
    Dernier message: 04/04/2006, 10h34
  4. [Dates] difference entre 2 date
    Par byteBoy dans le forum Langage
    Réponses: 12
    Dernier message: 30/03/2006, 14h02
  5. Réponses: 1
    Dernier message: 22/09/2005, 00h30

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