Afficher ma fonction date.

Afficher ma fonction date. - PHP - Programmation

Marsh Posté le 28-11-2007 à 20:24:50    

Bonsoir, je veut mettre une fonction date, mais je ne sait pas du comment l'afficher.
Cette focntion permet d'écrire un texte en fontion de la date à laquelle on a posté un message, genre hier, aujourd'hui, ou bien encore, il y a x minutes....
 
J'ai fait ca:
 

Code :
  1. <?  function date_complexe($date)
  2. {
  3. if($date > (time() - 60)) return'Il y a '.date('s', time() - $date).' seconde'.s(date('s', time() - $date));
  4. elseif($date > (time() - 3600)) return'Il y a '.date('i', time() - $date).' minute'.s(date('i', time() - $date));
  5. elseif($date > (time() - 7200)) return'Il y a 1 heure et '.date('i', time() - $date).' minute'.s(date('i', time() - $date));
  6. elseif(date('d.m.Y', $date) == date('d.m.Y', time())) return'Aujourd\'hui à '.date('H\hi', $date);
  7. elseif(date('d.m.Y', $date) == date('d.m.Y', time() - 86400)) return'Hier à '.date('H\hi', $date);
  8. else return $date;
  9. }  ?>


 
 
Je ne sait pas si j'ai renseigné cette ligne :
else return $date;
 
 
Ni comment afficher la date, avec un echo ou comment ???
 
Bref je suis perdu.
 
 

Reply

Marsh Posté le 28-11-2007 à 20:24:50   

Reply

Marsh Posté le 28-11-2007 à 20:42:20    

bah oui, echo date_complexe($tadate);


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 28-11-2007 à 20:47:23    

WiiDS a écrit :

bah oui, echo date_complexe($tadate);


 
Donc je met  

Code :
  1. echo date_complexe($date)


 
 
Mais il doit y avoir un souci sur cette ligne :

Code :
  1. else return $date;


 
 
J'ai mis :

Code :
  1. $date


et on me dit de mettre le format de la date.
 

Reply

Marsh Posté le 28-11-2007 à 20:50:02    

jc66 a écrit :


 
Donc je met  

Code :
  1. echo date_complexe($date)


 
 
Mais il doit y avoir un souci sur cette ligne :

Code :
  1. else return $date;


 
 
J'ai mis :

Code :
  1. $date


et on me dit de mettre le format de la date.
 


Pour la date, tu dois mettre un timestamp


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 28-11-2007 à 20:52:36    

comme ceci ?
 
else return $timestamp;
 
Actuellement j'ai rien qui s'affiche
 
 
 
 
le code actuel:
 
 

Code :
  1. <?  function date_complexe($date)
  2. {
  3. if($date > (time() - 60)) return'Il y a '.date('s', time() - $date).' seconde'.s(date('s', time() - $date));
  4. elseif($date > (time() - 3600)) return'Il y a '.date('i', time() - $date).' minute'.s(date('i', time() - $date));
  5. elseif($date > (time() - 7200)) return'Il y a 1 heure et '.date('i', time() - $date).' minute'.s(date('i', time() - $date));
  6. elseif(date('d.m.Y', $date) == date('d.m.Y', time())) return'Aujourd\'hui à '.date('H\hi', $date);
  7. elseif(date('d.m.Y', $date) == date('d.m.Y', time() - 86400)) return'Hier à '.date('H\hi', $date);
  8. else return  $timestamp;
  9. }  ?> <? echo date_complexe($date); ?>

Message cité 1 fois
Message édité par jc66 le 28-11-2007 à 20:54:33
Reply

Marsh Posté le 29-11-2007 à 09:59:02    

Dans ma base j'ai le timestamps qui s'affiche (la table du timestamp est appelée "temps)

Reply

Marsh Posté le 29-11-2007 à 20:00:32    

jc66 a écrit :

comme ceci ?
 
else return $timestamp;
 
Actuellement j'ai rien qui s'affiche
 
 
 
 
le code actuel:
 
 

Code :
  1. <?  function date_complexe($date)
  2. {
  3. if($date > (time() - 60)) return'Il y a '.date('s', time() - $date).' seconde'.s(date('s', time() - $date));
  4. elseif($date > (time() - 3600)) return'Il y a '.date('i', time() - $date).' minute'.s(date('i', time() - $date));
  5. elseif($date > (time() - 7200)) return'Il y a 1 heure et '.date('i', time() - $date).' minute'.s(date('i', time() - $date));
  6. elseif(date('d.m.Y', $date) == date('d.m.Y', time())) return'Aujourd\'hui à '.date('H\hi', $date);
  7. elseif(date('d.m.Y', $date) == date('d.m.Y', time() - 86400)) return'Hier à '.date('H\hi', $date);
  8. else return  $timestamp;
  9. }  ?> <? echo date_complexe($date); ?>



 
Tout d'abord je te conseille vivement d'apprendre le PHP, parce que la c'est de la bidouille au pifomètre et forcément ca marchera jamais si tu continues ainsi. Première chose, pourquoi fermer la balise php (?> ) pour la réouvrir juste après ? oO
 
Enfin de toutes facons comme tu comprends pas grand chose, je te passe le code rectifié :
 

Code :
  1. <?php  
  2. function date_complexe($date)
  3. {
  4. if($date > (time() - 60)) return'Il y a '.date('s', time() - $date).' seconde'.s(date('s', time() - $date));
  5. elseif($date > (time() - 3600)) return'Il y a '.date('i', time() - $date).' minute'.s(date('i', time() - $date));
  6. elseif($date > (time() - 7200)) return'Il y a 1 heure et '.date('i', time() - $date).' minute'.s(date('i', time() - $date));
  7. elseif(date('d.m.Y', $date) == date('d.m.Y', time())) return'Aujourd\'hui à '.date('H\hi', $date);
  8. elseif(date('d.m.Y', $date) == date('d.m.Y', time() - 86400)) return'Hier à '.date('H\hi', $date);
  9. else return 'Le '.date('d-m-Y', $date).' à '.date('H\hi', $date);
  10. }
  11.  
  12. echo date_complexe(mktime(0, 0, 0, 1, 1, 1998));
  13. ?>


 
Pour information, le timestamp est une valeur qui indique le nombre de secondes écoulées depuis le 1er janvier 1970. Pour afficher le timestamp actuel, il faut utiliser la commande time(); et pour afficher le timestamp d'une date précise il faut utiliser la commande mktime telle que :
 
mktime(0, 0, 0, NOMOIS, NOJOUR, ANNEE);
 
Par exemple, pour le 10 septembre 2001 :
 
mktime(0, 0, 0, 9, 10, 2001);
 
Pour le 8 janvier 2009 :
 
mktime(0, 0, 0, 1, 8, 2009);


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 30-11-2007 à 08:39:36    

ok, mais si je met exactement ce code j'ai ca qui s'affiche
 
 Le 01-01-1998 à 00h00
 
 
 
Je précise, j'ai mon timestamps dans une table appellée:  temps
 
dans cette base j'ai par exemple:  1196373165
 
 
si je remplace à la main:   echo date_complexe(mktime(0, 0, 0, 1, 1, 1998));
 
par
 
echo date_complexe(1196373165);
 
j'ai bien ce que je veut, soit ca:   Hier à 22h52  

Reply

Marsh Posté le 30-11-2007 à 23:34:26    

jc66 a écrit :

ok, mais si je met exactement ce code j'ai ca qui s'affiche
 
 Le 01-01-1998 à 00h00
 
 
 
Je précise, j'ai mon timestamps dans une table appellée:  temps
 
dans cette base j'ai par exemple:  1196373165
 
 
si je remplace à la main:   echo date_complexe(mktime(0, 0, 0, 1, 1, 1998));
 
par
 
echo date_complexe(1196373165);
 
j'ai bien ce que je veut, soit ca:   Hier à 22h52  


 
mktime() sert juste a créer le timestamp d'une date antérieure ou future, si tu as déja ton timestamp il coule de source que tu n'as pas besoin d'utiliser mktime.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 01-12-2007 à 18:10:15    

J'ai une erreur
 
Fatal error: Call to undefined function s() in /home/www/cd1ee2001e19aa/web/indextime.php on line 255
 
La ligne 255 c'est ca:

Code :
  1. elseif($date > (time() - 7200)) return'Il y a 1 heure et '.date('i', time() - $date).' minute'.s(date('i', time() - $date));


 
mon echo pour appeller la fonction

Code :
  1. echo date_complexe(strtotime($data['date1']));


 
 
si je supprime la ligne 255 ca fonctionne pour les autre date


Message édité par jc66 le 01-12-2007 à 18:13:15
Reply

Marsh Posté le 01-12-2007 à 18:10:15   

Reply

Marsh Posté le 01-12-2007 à 18:21:26    

Code :
  1. elseif($date > (time() - 7200)) return'Il y a 1 heure et '.date('i', time() - $date).' minutes'.date('i', time() - $date);


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 01-12-2007 à 18:27:52    

Y'a personne qui à l'impression que  c'est legerement illisible?


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Marsh Posté le 01-12-2007 à 18:34:43    

On est parfaitement d'accord.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 02-12-2007 à 22:01:08    

Shinuza a écrit :

Y'a personne qui à l'impression que  c'est legerement illisible?


 
 
Oui mais ca fonctionne :)
 
Merci à tous :)

Message cité 2 fois
Message édité par jc66 le 02-12-2007 à 22:01:32
Reply

Marsh Posté le 02-12-2007 à 22:03:11    

jc66 a écrit :


 
 
Oui mais ca fonctionne :)
 
Merci à tous WiiDS :)


 
[:aloy]


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 03-12-2007 à 01:16:57    

jc66 a écrit :


 
 
Oui mais ca fonctionne :)
 
Merci à tous :)

C'est à l'image de php non?


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed