Nicorad
Messages postés30Date d'inscriptionmardi 11 décembre 2007StatutMembreDernière intervention19 janvier 2009
-
23 févr. 2008 à 21:23
cs_sebastien_et_typh
Messages postés289Date d'inscriptionjeudi 5 octobre 2006StatutMembreDernière intervention11 juin 2010
-
24 févr. 2008 à 21:15
Bonjour à tous,
Voila j'ai une base de données, avec une table agenda, dedans j'ai un champs au format "date", donc les dates sont entrées sous la forme aaaa-mm-jj...
Dans ma page php, j'affiche ttes les données de l'agenda, j'arrive a transformer en format francais a l'aide d'une des contributions, mais maintenant j'aimerai qu'il soit marqué par exemple, 23 février 2008 au lieu de 23-02-2008...
En parcourant ttes les contributions, j'ai pu voir comment on fesai avec le date() et donc l'heure server, mais pas comment on fait avec une date se trouvant dans la base de donnée...
Ca serai très sympa de me donner quelques tuyaux...
Merci d'avance!
Nicolas.
ps: voila mon code pour afficher les dates...
function afficheAgenda(){
$sql="select * from agendas order by date";
$rs=mysql_query($sql) or die ("Erreur de requête : $sql");
$date_serveur=date('Y-m-d');
while($row=mysql_fetch_array($rs))
{
extract ($row);
if ($date_serveur <= $date) {
print "<tr>";
print "<td>" . eregi_replace("([0-9].*)-([0-9].*)-([0-9].*)" ,"\\3-\\2",$date) . " $heure</td>";
print "<td>$nom</td>";
print "<td>$lieu</td>";
print "</tr>";
}
}
}
cs_sebastien_et_typh
Messages postés289Date d'inscriptionjeudi 5 octobre 2006StatutMembreDernière intervention11 juin 20103 24 févr. 2008 à 03:22
Bonsoir ,
au debut de ton if dans le while tu pourrais mettre :
$jour = substr($date,0,2);
$moi = substr($date,3,2);
$annee = substr($date,7,4);
switch ($moi){
case 01 :
$moi = "Janvier";
breack;
case 02 :
$moi = "Février";
breack;
.
.
.
case 12 :
$moi = "Décembre";
breack;
}
ensuite tu a juste a affiché ta date comme tu le souhaite :
echo $jour." ".$moi." ".$annee;
j'espere t'avoir aider
Personne ne peut se permettre de juger l'autre....
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 24 févr. 2008 à 08:17
Hello,
tu peux aussi voir setlocale() sur php.net et trouve la bon paramètrage en fonction de ton serveur (si ton serveur l'accepte).
Puis tu transformes ta date en timestamp (strtotime()), et enfin, tu relis la fonction date() parce qu'elle prend un second argument qui est un timestamp justement...et tu cherchers dans les options du 1er argument pour afficher une date sous la forme dd moi_en_lettres_ année.
Nicorad
Messages postés30Date d'inscriptionmardi 11 décembre 2007StatutMembreDernière intervention19 janvier 2009 24 févr. 2008 à 11:55
merci beaucoup pour vos réponses, je m'étais déjà penché quelques temps sur l'option proposée par malalam, sans succès, je vais donc essayer celle de sebastien...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Nicorad
Messages postés30Date d'inscriptionmardi 11 décembre 2007StatutMembreDernière intervention19 janvier 2009 24 févr. 2008 à 12:22
Après avoir essayé la methode de sebastien, ca marche +- bien...
En fait, pour une raison qui me dépasse totalement, ca marche pour tous les mois, sauf Août et septembre, pourquoi, tel est la question...
voila mon code: (il est bon de savoir que les dates toutes ont été entrée de la même manière dans la base de donnée, c'est à dire sous le type "date" et avec l'interface calendrier, donc aucune entrée à la main de la date en entier...)
$jour = substr($date,8,2);
$mois = substr($date,5,2);
$annee = substr($date,0,4);
switch ($mois){
case 01;
$mois = "Janvier";
break;
case 02;
$mois = "Février";
break;
case 03;
$mois = "Mars";
break;
case 04;
$mois = "Avril";
break;
case 05;
$mois = "Mai";
break;
case 06;
$mois = "Juin";
break;
case 07;
$mois = "Juillet";
break;
case 08;
$mois = "Août";
break;
case 09;
$mois = "Septembre";
break;
case 10;
$mois = "Octobre";
break;
case 11;
$mois = "Novembre";
break;
case 12;
$mois = "Décembre";
break;
}
if ($date_serveur <= $date) {
print "<tr>";
print "<td align='left' valign='top'>" . $jour . " " . $mois . " " . $heure . "</td>";
print "<td align='left' valign='top'>$nom</td>";
print "<td align='left' valign='top'>$lieu</td>";
print "</tr>";
}
Nicorad
Messages postés30Date d'inscriptionmardi 11 décembre 2007StatutMembreDernière intervention19 janvier 2009 24 févr. 2008 à 20:12
juste!!! ca fesai lgtps que je n'avai plus utilisé cette methode, j'aurai du me rafraichir la mémoire...
Voila je viens de modifier les ; en : pour les case, mais j'ai toujours le meme problème... Je me demande bien pourquoi ca fonctionne avec tous les mois saud aout et septembre, trop bizarre...
Nicorad
Messages postés30Date d'inscriptionmardi 11 décembre 2007StatutMembreDernière intervention19 janvier 2009 24 févr. 2008 à 21:10
j'avais 08 et 09, le mois en chiffre quoi... Je viens de résoudre le problème. Pour ses 2 mois la, je dois mettre case 8 et case 9 au lieu de 08 et 09...Pourquoi, les mystère de l'informatique...