Afficher "Aujourd'hui" et "Hier"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher "Aujourd'hui" et "Hier"

Re: Afficher "Aujourd'hui" et "Hier"

par Yann29 » 01 juin 2011, 16:24

J'ai tapé le code à la main pour le comprendre mieux et ça fonctionne nickel.

Merci de ton aide ;)

Yann.

Re: Afficher "Ajourd'hui" et "Hier"

par sadeq » 01 juin 2011, 14:50

Bonjour,

C'est un problème de conversion de date valide, strtotime() n'est pas suffisante il faut la combiner avec la fonction date.
Voici le format valide d'écriture:

Code : Tout sélectionner

une date valide = date(format Y-m-d ou autre, strtotime(une date donnée à convertir));
Du coup voici le programme de test de ta fonction:
<?php
//$affiche['date'] = '2011-05-30 11:43:59'; //une date
//$affiche['date'] = '2011-05-31 11:43:59'; //hier
$affiche['date'] = '2011-06-01 11:43:59'; //aujourd'hui

echo '<span>'.viewDate($affiche['date']).' </span>';

function viewDate($date){
  if(date('Y-m-d', strtotime($date)) == date('Y-m-d')) return 'Aujourd\'hui';
  else if(date('Y-m-d', strtotime($date)) == date('Y-m-d', strtotime(date('Y-m-d').' - 1 DAY'))) return 'Hier';
  else return $date;
}
?>

Afficher "Aujourd'hui" et "Hier"

par Yann29 » 01 juin 2011, 12:49

Bonjour à tous,

Je peaufine actuellement mon nouveau site et je souhaiterais modifier l'affichage de la date pour mes articles. La date de ces derniers est affichée comme ceci:
1-06-11 à 11:43 Le titre de l'article
Le code qui affiche la date:
echo '<span>'.date("j-m-y à H:i" ,strtotime($affiche["date"])).' </span>';
Je souhaiterais afficher "Aujourd'hui" à la place de la date du jour ainsi que "Hier" pour un article posté la veille. Pour cela, j'ai récupéré cette fonction:
function viewDate($date){
  if($date == date('Y-m-d')) return 'Aujourd\'hui';
  else if(strtotime($date) == strtotime(date('Y-m-d').' - 1 DAY')) return 'Hier';
  else return $date;
}
Je précise que toutes mes fonctions sont dans un seul fichier.

J'ai modifié mon code d'affichage par:
echo '<span>'.viewDate($affiche['date']).' </span>';
Mais à l'écran, j'ai ce résultat:
2011-06-01 11:43:59 Le titre de l'article
Maintenant, je ne sais pas si cela vient de la fonction en elle même ou si c'est l'appel vers cette même fonction qui est incorrecte.

Pouvez-vous m'éclairer ?

Merci.