Souci pour une fonction date
will.smith
Messages postés
264
Statut
Membre
-
will.smith Messages postés 264 Statut Membre -
will.smith Messages postés 264 Statut Membre -
bonjour,
j'ai remis une fonction pour la date pour savoir qu'elle est la date de sa dernier visite
le code :
mais il me met :
1245148111Hier
au lieu d'affiché :
hier à 23 h
et quand il se connecte aujourd'hui :
124525128217/06/2009 à 17h08
au lieu d'affiché :
aujourd'hui à 17 h 08
merci de me dire où est l'érreur
et entre parenthèse
j'ai voulu éssayé d'affiché cette méthode juste pour que je sache :
Dernière visite : il y as 10 s où il y as 1 mn où il y as 1 h où 2 h et ensuite à partir de 3 h je remettrais aujourd'hui
donc j'ai éssayé de mettre au lieu de H j'ai pensé à mettre un I et S
donc comment je dois procédé
merci de votre aide
j'ai remis une fonction pour la date pour savoir qu'elle est la date de sa dernier visite
le code :
<?php
echo'<li><div class="texte_blanc">Dernière visite : '.$insc = $data1['membre_derniere_visite'];
if(date('d/m/Y à H\hi') == date('dmY', $insc))
echo 'Aujourd\'hui';
else if((date('d') - 1) == date('d', $insc) AND date('mY') == date('mY', $insc))
echo 'Hier';
else
echo date('d/m/Y à H\hi', $insc)
.'</div></li>';
?>
mais il me met :
1245148111Hier
au lieu d'affiché :
hier à 23 h
et quand il se connecte aujourd'hui :
124525128217/06/2009 à 17h08
au lieu d'affiché :
aujourd'hui à 17 h 08
merci de me dire où est l'érreur
et entre parenthèse
j'ai voulu éssayé d'affiché cette méthode juste pour que je sache :
Dernière visite : il y as 10 s où il y as 1 mn où il y as 1 h où 2 h et ensuite à partir de 3 h je remettrais aujourd'hui
donc j'ai éssayé de mettre au lieu de H j'ai pensé à mettre un I et S
donc comment je dois procédé
merci de votre aide
A voir également:
- Souci pour une fonction date
- Fonction si et - Guide
- Fonction miroir - Guide
- Jm date désabonnement ✓ - Forum Consommation & Internet
- Jm date avis - Forum Consommation & Internet
- Jm date - Forum Consommation & Internet
29 réponses
C'est fouilli tout ca :)
Voila si tu ne comprends pas ce que j'ai fait n'hesites pas à demander
<?php
$insc = $data1['membre_derniere_visite'];
$difference = time() - $insc;
echo '<li><div class="texte_blanc">Dernière visite : ';
//Si c'est aujourd'hui
if(date('dmY') == date('dmY', $insc))
//Si c'est il y a moins de 3 heures
if( date('G',$difference) < 3 )
{
echo 'Il y a ';
if (date('G',$difference)==0)
echo date('G\h',$difference);
elseif (date('i',$difference)=="00")
echo date('i\m',$difference);
else echo date('s\s',$difference);
}
//Si c'est il y a plus de trois heures
else
echo 'Aujourd\'hui';
//Si c'est hier
else if((date('d') - 1) == date('d', $insc) AND date('mY') == date('mY', $insc))
echo 'Hier';
//Si c'est une autre date
else
echo date('le d/m/Y', $insc) ;
//Puis affichage de l'heure
if( date('G',$difference) >= 3 )
echo date('à H\hi', $insc).'</div></li>';
?>
Voila si tu ne comprends pas ce que j'ai fait n'hesites pas à demander
merci
mais là il y as juste un petit détail qui n'est pas grave il met Tuesdaye 16/06/2009 au lieu mardi
et aussi il y as qq chose qui cloche pour les seconde il met 30 seconde là c bon mais il oublie de mettre 1 mn car il met 15 où 30 à chaque fois et il oublie de mettre 1 mn où 2 mn etc. il reste toujour fiser sur les secondes
mais pour le jours il met en anglais merci
mais là il y as juste un petit détail qui n'est pas grave il met Tuesdaye 16/06/2009 au lieu mardi
et aussi il y as qq chose qui cloche pour les seconde il met 30 seconde là c bon mais il oublie de mettre 1 mn car il met 15 où 30 à chaque fois et il oublie de mettre 1 mn où 2 mn etc. il reste toujour fiser sur les secondes
mais pour le jours il met en anglais merci
pour les jour en francais il va falloir le faire toi meme, mettre les jours en francais dans un tableau et faire $jours_francais[ date('w', $insc) ]
0 etant dimanche et 6 samedi
Pour les minutes je me suis trompé dans les conditions :
Voila ca devrait marcher
0 etant dimanche et 6 samedi
Pour les minutes je me suis trompé dans les conditions :
if (date('G',$difference)!=0)
echo date('G\h',$difference);
elseif (date('i',$difference)!="00")
Voila ca devrait marcher
merci mais il y as petit souci
il met : Dernière visite : Il y a 00m1h
donc il met 1h en trop
voilà le code corrigé
et si un jour je veut affiché il y as 8 h je change ce chiffre dans ce bout de code
je change le 3 par 8 si j'ai bien compris
ps je rédis juste pour dire il oublie toujour mettre 1 mn où 2 mn il reste fixer les seconde
il met : Dernière visite : Il y a 00m1h
donc il met 1h en trop
voilà le code corrigé
$insc = $data1['membre_derniere_visite'];
$difference = time() - $insc;
echo '<li><div class="texte_blanc">Dernière visite : ';
//Si c'est aujourd'hui
if(date('dmY') == date('dmY', $insc))
//Si c'est il y a moins de 3 heures
if( date('G',$difference) < 3 )
{
echo 'Il y a ';
if (date('G',$difference)==0)
echo date('G\h',$difference);
elseif (date('i',$difference)=="00")
echo date('i\m',$difference);
else echo date('s\s',$difference);
}
//Si c'est il y a plus de trois heures
else
echo 'Aujourd\'hui';
//Si c'est hier
else if((date('d') - 1) == date('d', $insc) AND date('mY') == date('mY', $insc))
echo 'Hier';
//Si c'est une autre date
else
echo date('le d/m/Y', $insc) ;
//Puis affichage de l'heure
if (date('G',$difference)!=0)
echo date('G\h',$difference);
elseif (date('i',$difference)!="00")'</div></li>';
et si un jour je veut affiché il y as 8 h je change ce chiffre dans ce bout de code
//Si c'est aujourd'hui
if(date('dmY') == date('dmY', $insc))
//Si c'est il y a moins de 3 heures
if( date('G',$difference) < 3 )
je change le 3 par 8 si j'ai bien compris
ps je rédis juste pour dire il oublie toujour mettre 1 mn où 2 mn il reste fixer les seconde
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon je reprends mon code (je l'ai écrit en vitesse faut dire ^^)
<?php
$insc = $data1['membre_derniere_visite'];
$difference = time() - $insc;
$heure_defaut = 3;
echo '<li><div class="texte_blanc">Dernière visite : ';
//Si c'est aujourd'hui
if(date('dmY') == date('dmY', $insc))
//Si c'est il y a moins de 3 heures
if( $difference < $heure_defaut*3600 )
{
echo 'Il y a ';
if (date('G',$difference)!=0)
echo date('G\h',$difference);
elseif (date('i',$difference)!="00")
echo date('i\m',$difference);
else echo date('s\s',$difference);
}
//Si c'est il y a plus de trois heures
else
echo 'Aujourd\'hui';
//Si c'est hier
else if((date('d') - 1) == date('d', $insc) AND date('mY') == date('mY', $insc))
echo 'Hier';
//Si c'est une autre date
else
echo date('le d/m/Y', $insc) ;
//Puis affichage de l'heure si on est à plus de 3 heures
if( ,$difference) $heure_defaut*3600 )
echo date('à H\hi', $insc).'</div></li>';
?>
merci mais là
Parse error: syntax error, unexpected ',' in /mnt/144/sdb/b/c/monsite/forum/voirprofil.php on line 100
ca correspond
//Puis affichage de l'heure si on est à plus de 3 heures
if( ,$difference) $heure_defaut*3600 )
echo date('à H\hi', $insc).'</div></li>';
merci de ton aide
Parse error: syntax error, unexpected ',' in /mnt/144/sdb/b/c/monsite/forum/voirprofil.php on line 100
ca correspond
//Puis affichage de l'heure si on est à plus de 3 heures
if( ,$difference) $heure_defaut*3600 )
echo date('à H\hi', $insc).'</div></li>';
merci de ton aide
lol excuse moi mais je me suis déconnecté et reconnecté juste pour voir s'il me met 2 s où 3 s et 1 mn mais il m'affiche
Il y a 1h au lieu d'affiché les seconde et puis les minutes
merci
Il y a 1h au lieu d'affiché les seconde et puis les minutes
merci
Bon ca commence à me saouler on va la faire à la barbare :p
echo 'Il y a ';
if ($difference>3600)
echo date('G\h',$difference);
elseif ($difference > 60)
echo date('i\m',$difference);
else echo date('s\s',$difference);
lol et pour le pb il faut que je fasse quoi car si tu dit juste En tout cas, y'a du Timestamp dans l'air .
ca vas vraiment m'aidé lol
ca vas vraiment m'aidé lol
Met nous ton code actuel, parce que je comprends pas que ca marche pas la ... Tu as peut être mal copié/compris mes changements ;)
re
merci de ton aide
ps j'ai démandé à quelqu'un qui m'a dit juste ça enfin si ça peut aidé
$insc = $data1['membre_derniere_visite'];
$difference = time() - $insc;
$heure_defaut = 3;
echo '<li><div class="texte_blanc">Dernière visite : ';
//Si c'est aujourd'hui
if(date('dmY') == date('dmY', $insc))
//Si c'est il y a moins de 3 heures
if( $difference < $heure_defaut*3600 )
{
echo 'Il y a ';
if (date('G',$difference)!=0)
echo date('G\h',$difference);
elseif (date('i',$difference)!="00")
echo date('i\m',$difference);
else echo date('s\s',$difference);
}
//Si c'est il y a plus de trois heures
else
echo 'Aujourd\'hui ';
//Si c'est hier
else if((date('d') - 1) == date('d', $insc) AND date('mY') == date('mY', $insc))
echo 'Hier ';
//Si c'est une autre date
else
echo date('le d/m/Y', $insc) ;
//Puis affichage de l'heure si on est à plus de 3 heures
if( $difference >= $heure_defaut*3600 )
echo date(' à H\hi', $insc).'</div></li>';
merci de ton aide
ps j'ai démandé à quelqu'un qui m'a dit juste ça enfin si ça peut aidé
Bonsoir, Pour ton premier souci : $difference n'est pas une date, mais une durée, il me semble (mais je peux me tromper), que, conceptuellement, le problème vient de là. En effet, la fonction date() retourne une date, pas une durée. Hors, comme la date qu'elle retourne part du 1er janvier 1970 00:00:00 GMT. Avec le décalage horaire de 1 heure, si $difference vaut 5 par exemple, elle te retourne 1er janvier 1970 01:00:05 et tu affiches : dernière connexion il y a 1 heure, ce qui est évidemment faux. Mais, on peut aussi remarquer que, le temps qui s'est écoulé depuis la dernière connexion n'est pas égal à 1er janvier 1970 01:00:05. Donc, même si, en bidouillant avec le fuseau horaire, tu arrivais à tes fins (1er janvier 1970 00:00:05), je ne suis pas sûr que ce serait la meilleure solution. Pour ce tu veux faire l'opérateur modulo(%) est peut-être plus approprié. Citation: ($difference-($difference%3600))/3600 = nombre d'heures ($difference%3600-$difference%60)/60 = nombre de minutes $difference%60 = nombre de secondes Quant au second souci : Plutôt que date(), il y a la fonction strftime() précédée de la fonction setlocale() qui permet de formater les dates en français.
Oui désolé c'est le week end je suis moins actif ^^
Alors voila un code entier qui devrait fonctionner (je précise que ton ami a raison et c'est ce que je faisait dans mon précédent post) :
Alors voila un code entier qui devrait fonctionner (je précise que ton ami a raison et c'est ce que je faisait dans mon précédent post) :
$insc = $data1['membre_derniere_visite'];
$difference = time() - $insc;
$heure_defaut = 3;
echo '<li><div class="texte_blanc">Dernière visite : ';
//Si c'est aujourd'hui
if(date('dmY') == date('dmY', $insc))
//Si c'est il y a moins de 3 heures
if( $difference < $heure_defaut*3600 )
{
echo 'Il y a ';
if ($difference >= 3600)
echo strftime("%lh",$difference);
elseif ($difference >= 60)
echo strftime('"%Mm",$difference);
else echo strftime('%Ss',$difference);
}
//Si c'est il y a plus de trois heures
else
echo 'Aujourd\'hui ';
//Si c'est hier
else if((date('d') - 1) == date('d', $insc) AND date('mY') == date('mY', $insc))
echo 'Hier ';
//Si c'est une autre date
else
echo date('le d/m/Y', $insc) ;
//Puis affichage de l'heure si on est à plus de 3 heures
if( $difference >= $heure_defaut*3600 )
echo date(' à H\hi', $insc).'</div></li>';
merci ce n'est pas grave il y as une érreur
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /mnt/144/sdb/b/c/le.coffre/forum/voirprofil.php on line 90
je pense que tu a oublié un ; où ' tu me diras en attendant je vais éssayé
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /mnt/144/sdb/b/c/le.coffre/forum/voirprofil.php on line 90
{
echo 'Il y a ';
if ($difference >= 3600)
echo strftime("%lh",$difference);
elseif ($difference >= 60)
echo strftime('"%Mm",$difference);
else echo strftime('%Ss',$difference);
}
//Si c'est il y a plus de trois heures
else
echo 'Aujourd\'hui ';
je pense que tu a oublié un ; où ' tu me diras en attendant je vais éssayé
Arf désolé erreur d'écriture en effet :)
{
echo 'Il y a ';
if ($difference >= 3600)
echo strftime("%lh",$difference);
elseif ($difference >= 60)
echo strftime("%Mm",$difference);
else echo strftime('%Ss',$difference);
}
//Si c'est il y a plus de trois heures
else
echo 'Aujourd\'hui ';