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

PHP & Base de données Discussion :

Interval date dans un while [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    437
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 437
    Points : 184
    Points
    184
    Par défaut Interval date dans un while
    Bonjour

    je vous écris car je calcul le temps inactif des membres dans un while. tous fonctionne bien à un détails pret est que ça m'affiche le meme texte pour tous les contacts et je n'arrive pas a trouvé l'erreur voila le bout de mon code du while avec le calcul des dates :

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <?php
    $list = "SELECT * FROM friends where idmoi= $id_user and etat= '2'";
    $lists = $conn->query($list);
     
    while( $inf = mysqli_fetch_array( $lists ) ) {
     
    	$iduser = $inf["idami"];
     
     
    	$sql_m = "SELECT * FROM membre where id= $iduser";
    	$sql_m = $conn->query($sql_m);
    	$mem = mysqli_fetch_array($sql_m);
    	$pseudof = $mem["pseudo"];
    	$photodpf = $mem["photo_profil"];
    	$connexiont = $mem["connexion"];
     
        $Ecart = time()-$connexiont;
        $Annees = date('Y',$Ecart)-1970;
        $Mois = date('m',$Ecart)-1;
        $Jours = date('d',$Ecart)-1;
        $Heures = date('H',$Ecart)-1;
        $Minutes = date('i',$Ecart)-1;
        $Secondes = date('s',$Ecart);
        if($Annees > 0) {
            $txt =  "Il y a ".$Annees." an".($Annees>1?"s":"")." et ".$Jours." jour".($Jours>1?"s":""); // on indique les jours avec les année pour être un peu plus précis
        }
        if($Mois > 0) {
            $txt =  "Il y a ".$Mois." mois et ".$Jours." jour".($Jours>1?"s":""); // on indique les jours aussi
        }
        if($Jours > 0) {
            $txt =  "Il y a ".$Jours." jour".($Jours>1?"s":"");
        }
        if($Heures > 0) {
            $txt =  "Il y a ".$Heures." heure".($Heures>1?"s":"");
        }
        if($Minutes > 1) {
            $txt =  "Il y a ".$Minutes." minute".($Minutes>1?"s":"");
        }
        if($Secondes < 59) {
            $txt =  "Online".($Secondes>1?"":"");
        }
     
    $sql_c = "SELECT COUNT(*) as counter FROM tchat_live where id_sender= $iduser and id_recev = $id_user";
    	$sql_c= $conn->query($sql_c);
    	$count = mysqli_fetch_array($sql_c);
    	$counter = $count["counter"];
    	if($counter == "0"){
    		$stylde = "dis";
    		$num = "displaynumber";
    		} else {
    			$num = "number";
    		}
     
     
    ?>
                        <li class="list-group-item">
                            <div class=" col-sm-3">
                                <img src="<?php echo $photodpf; ?>" alt="<?php echo $pseudof; ?>" class="img-respon img-circle" />
                            </div>
                            <div class=" col-sm-9">
                                <span class="name" for="<?php echo $iduser ; ?>"><a href="" for="" title="" class="popmember"><?php echo $pseudof; ?></a> </span><br/>
                               <div class="<?php echo $stylde; ?>" id="dis"><span class="<?php echo $num; ?>" id="number"><?php echo $counter; ?> 
    						  </span></div>
    						   <span class=" text-muted c-info"><?php echo $txt; ?></span>
                                </div>
                            <div class="clearfix"></div>
                        </li>
     
    <?php } ?>

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    437
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 437
    Points : 184
    Points
    184
    Par défaut
    résolu j'ai réecris un code avec interval voila le code si ça peut aider

    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
    $str = date("Y-m-d H:i:s", time());
    $end = date("Y-m-d H:i:s", $connexiont);
    $start       = new DateTime("$str");
    $end         = new DateTime("$end");
    $intervalle  = $start->diff($end);
    $nb_jours    = $intervalle->format("%d");
    $nb_ann    = $intervalle->format("%Y");
    $nb_mois =  $intervalle->format("%m");
     
    $heu = $intervalle->format("%h");
    $minu = $intervalle->format("%i");
    $sece = $intervalle->format("%S");
     
     
     
    if($nb_mois >= 1 &&  $nb_mois <= 11){
    $txt = $intervalle->format("il y a %m mois %d jours");
     
    }
    elseif($nb_jours >= 1 && $heu  < 1){
    	$txt = $intervalle->format("il y a %d jours ");
    }
    elseif($nb_jours >= 1  && $heu > 1) {
    	$txt = $intervalle->format("il y a %d jours %h hrs");
    }
    elseif($heu  >= 1 && $minu > 1 && $nb_jours == 0) {
    $txt = $intervalle->format("il y a %h hrs %i min");
    }
    elseif($minu >= 1 && $heu  < 1) {
    $txt = $intervalle->format("il y a %i min");
    }
    elseif($heu < 1 && $minu < 1 && $sece >=  30 && $sece <= 59){
    $txt = $intervalle->format("Moins d'une minute");
    }
    elseif($heu < 1 && $minu < 1 && $sece < 30){
    $txt = $intervalle->format("Online");
    }

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

Discussions similaires

  1. insérer une date dans une table mssql
    Par ericmart dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/01/2004, 10h37
  2. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53
  3. Transformation de date dans une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/10/2003, 11h31
  4. Réponses: 3
    Dernier message: 19/03/2003, 15h19
  5. Réponses: 3
    Dernier message: 25/11/2002, 14h15

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