Page 1 sur 1
problème date, affichage juste mois, année
Posté : 19 mars 2011, 21:21
par AurelienC
Bonjour à tous,
Je bloque sur ce petit problème :
Code : Tout sélectionner
$jour=date("d", $datefr);
$mois=date("m", $datefr);
$annee=date("Y", $datefr);
$heures=date("G", $datefr);
$minutes=date("i", $datefr);
echo "$datefr, $jour, $mois, $annee, $heures, $minutes";
Et ça m'affiche ceci :
2011-10-09 19:30:00, 01, 01, 1970, 1, 33
Pouvez-vous m'éclairer ?
merci par avance,
Aurélien
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 00:30
par xTG
As-tu activé toutes les erreurs PHP ?
En cas de problème de fuseau horaire cette fonction génère un message E_NOTICE et E_STRICT ou E_WARNING.
Ton paramètre default_timezone du php.ini serait-il non configuré ?
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 13:25
par AurelienC
Bonjour,
Merci pour cette réponse !
Il n'y a que sur cette page que la décomposition d'une date pose problème... C'est pour cela que je ne comprends pas !
Sur les autres pas je décompose de cette manière "Rendez vous le mercredi 18 mai 2011 a 17:00 ! " et ça marche sans soucis...
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 13:31
par Ryle
Euh... si "echo $datefr" t'affiche "2011-10-09 19:30:00", c'est que ce n'est pas un timestamp... et du coup tu ne peux pas le passer comme 2nd argument à la fonction date

Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 13:48
par AurelienC
Je stocke ma date dans un datetime
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 13:56
par Ryle
Ca ne pose pas de soucis, il faut juste que tu convertisses la valeur que tu récupères de ta bdd en timestamp pour pouvoir l'utiliser dans ta fonction date()
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 13:59
par AurelienC
Comment faire ça ?
Ce qui m'intrigue c'est que dans d'autres pages je fais exactement pareil et ça marche sans problème...
Bizarre le php !

Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 14:08
par Ryle
Tu peux par exemple utiliser la fonction mktime() pour générer un timestamp à partir des infos que tu as récupéré en base...
Mais effectivement, c'est assez étrange que cela fonctionne ailleurs ... lorsque tu affiches ta variable $datefr (ou son équivalent) dans l'un de script qui fonctionne, tu obtiens un nombre ou une date formatée comme celle-ci ?
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 14:46
par AurelienC
Ailleurs la date s'affiche bien comme pour ma variable $datefr
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 14:55
par AurelienC
Effectivement j'avais oublié une ligne, j'utilisais avant "strtotime()", là j'ai essayé avec mktime() et ça me donne ça :
2011-10-09 19:30:00, 11, 06, 2011, 19, 52
11=jour
06=mois
2011=année
19=heures
52=minutes
Donc il y a toujours un problème...

Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 19:37
par AB
Pour info tu peux récupérer la date formatée directement dans ta requête
mysql_set_charset('utf8');
$setime = "SET lc_time_names = 'fr_FR'";
mysql_query($setime) or die(mysql_error());
$query = "SELECT ... DATE_FORMAT(champ_date,'%W %d %M à %H:%i') as datefr FROM matable WHERE ...";
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 19:40
par AurelienC
Merci pour cette information.
Mon but est de récupérer une date avec une variable par "information" (jour, mois, année, heures et minutes) pour ensuite les faire être pré-sélectionnées dans une liste déroulante (une pour le jour, une pour le mois, etc.)
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 20:11
par AB
Utilise alors plutôt strftime pour avoir une date en français
$date_mysql = '2008-08-20 04:13:41';
function Date_fr($da)
{
setlocale(LC_TIME, "french");
$strtime = strtotime($da);
$jour = strftime('%A', $strtime);
$num_jour = strftime('%d', $strtime);
$mois = strftime('%B', $strtime);
$an = strftime('%Y', $strtime);
$heure = strftime('%H', $strtime);
$min = strftime('%M', $strtime);
return array('j'=>$jour,'num'=>$num_jour,'mois'=>$mois,'an'=>$an,'h'=>$heure,'m'=>$min);
}
echo '<br />';
print_r(Date_fr($date_mysql));
echo '<br />';
Suivant les cas tu pourras avoir à faire un utf8_encode sur le mois
Re: problème date, affichage juste mois, année
Posté : 20 mars 2011, 22:19
par AurelienC
Merci beaucoup ça marche parfaitement !