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 :

Calculer temps restant entre deux date


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Par défaut Calculer temps restant entre deux date
    Bonjour,

    J'aimerais savoir comment faire pour afficher le temps restant pour un site d'enchere, j'ai deux date dans ma base date_debut et date_fin.

    Voila ce que j'ai :

    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
     
     
     
    $debut=$dep['date_debut'];
    $fin=$dep['date_fin'];
     
    echo $fin;
    echo '<br><br>';
     
     
    $date="$fin"; //la date de fin
    $dure=365; //jours
     
          list($Y,$d,$m)=explode("-",$date);
          $DateFin = mktime(0, 0, 0, $y, $d, $m); //la date de fin en mktime
     
          $duree=$dure*86400; //je transforme en seconde pour le mktime
          $dateDebut = $DateFin-$duree; //la date du debut est donc la date de fin moins la duree non?
     
          $dateFinTexte = date("Y-d-m", $DateFin); //la fin sous forme jj/mm/aaaa
          $dateDebutTexte = date("Y-d-m", $dateDebut); //le debut sous forme jj/mm/aaaa
     
          //calcul du nbr de jours restant
          $DateNow=mktime(); //maintenant
          $temprestant=$DateFin-$DateNow; //la date de fin moins maintenant (on est en seconde ici)
     
          $temprestant=floor($temprestant/(60*60*24)); //le temps restant jours
     
          echo 'La fin : '.$dateFinTexte.'<br>Le debut : '.$dateDebutTexte.'<br>temps restant: '.$temprestant;

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Salut ,
    Pourquoi ne pas utiliser la fonction date() avec le timestamp $temprestant comme tu le fais avant ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Par défaut
    Ca me donne ca comme reponse

    La date de fin dans la base est 2010-03-14

    Pkoi 2013

    La fin : 2013-03-12
    Le debut : 2012-03-12
    temps restant: 1389.3890972222

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    La fonction http://fr.php.net/date_diff me parait plus qu'appropriée.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Par défaut
    dans ma base c'est afficher comme ca :

    2010-02-12 12:20:33 date_debut
    2010-03-14 12:20:33 date_fin

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Oui ? Ton dernier message ne ressemble pas tellement à une question. Soit :

    http://fr.php.net/manual/fr/datetime.diff.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $start = new DateTime('2010-02-12 12:20:33'); 
    $end = new DateTime('2010-03-14 12:20:33');
     
    $time_span = $start->diff($end);
     
    var_dump($time_span);

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Par défaut
    ce ne fais rien du tout en faite j'aimerais quand function des deux date cela m'affiche il reste 12 jour 10 h et 22 minute

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    A moins que tu aies des années sur 14 mois c'est donc bien Y-m-d.

    D'ailleurs la différence de date ce fait aussi directement chez Mysql (et surement ailleurs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATEDIFF(date_fin, date_debut)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as mélangé $y et $Y.

    Tu es sur d'avoir Y-d-m comme format de date et non Y-m-d ?


    Sinon sur le fond ton code est inutilement compliqué

    - Tu pars d'une date Y-d-m que tu decoupes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($Y,$d,$m)=explode("-",$date);
    - Tu en fais un timestamp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $DateFin = mktime(0, 0, 0, $y, $d, $m);
    - Tu en refais une date Y-d-m :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dateFinTexte = date("Y-d-m", $DateFin);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Calculer le temps écoulé entre deux dates
    Par ramoucha23 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 25/08/2016, 17h48
  2. Calcul temps ecoulé entre deux dates
    Par biazoc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/05/2008, 15h21
  3. [TIMER] Temps restant entre deux événements
    Par Rayek dans le forum Delphi
    Réponses: 8
    Dernier message: 17/11/2006, 15h37
  4. calculer la temps moyen entre deux dates
    Par zainabsourid dans le forum BIRT
    Réponses: 1
    Dernier message: 24/07/2006, 12h06
  5. [VBA] Calculer la différence entre deux dates
    Par T'chab dans le forum Access
    Réponses: 13
    Dernier message: 11/05/2006, 15h12

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