Format date en PHP/MySQL
Résolu
pm
-
Mubb -
Mubb -
Bonjour,
J'ai développé, sous windows XP pro et EasyPHP 1.6, un livre d'or en php et base de données MySql, avec l'affichage de la date et l'heure de la création du message.
Tout fonctionne parfaitement, si ce n'est que la date s'affiche au format américain : AAAA/MM/JJ.
J'aurais souhaité l'afficher au format français : JJ/MM/AAAA.
Quelqu'un pourrait-il me dire comment faire ?
J'ai essayé de changer le format dans le formulaire
$date = date("Y-m-d");
$date = date("d-m-Y");
mais j'ai un autre problème lors de l'affichage de l'année qui reprend le jour et le mois, au lieu de 2004.
Dans phpMyAdmin je n'arrive pas à changer le format de la date qui revient toujours au format américain.
Voici les scripts du formulaire et de l'affichage :
FORMULAIRE :
<?php
include("sql.inc");
mysql_connect($hote, $user, $password);
mysql_select_db("perso")
or die("Ouverture base impossible");
$date = date("Y-m-d");
$heure = date("H:i:s");
if($nom)
{
mysql_query("INSERT INTO livre(nom,message,date,heure)
VALUES('$nom','$message','$date','$heure')")
or die("Ecriture impossible");
}
mysql_close;
?>
AFFICHAGE:
<?
include("sql.inc");
mysql_connect($hote, $user, $password);
mysql_select_db("perso")
or die("Ouverture base impossible");
{
$table=mysql_query("SELECT * FROM livre order by ordre DESC");
}
mysql_close;
echo"<CENTER><TABLE BORDER=0 bgcolor='#FFFFFF'>";
echo"<TR>";
echo"<TD><CENTER>";
while ($ligne=mysql_fetch_object($table))
{
echo"<TR>";
echo"<TD><CENTER><B>$ligne->message<BR><BR>";
echo"<TR>";
echo"<TD><B>$ligne->nom le $ligne->date à $ligne->heure";
echo"<BR><hr>";
}
?>
Merci d'avance pour vos réponses.
J'ai développé, sous windows XP pro et EasyPHP 1.6, un livre d'or en php et base de données MySql, avec l'affichage de la date et l'heure de la création du message.
Tout fonctionne parfaitement, si ce n'est que la date s'affiche au format américain : AAAA/MM/JJ.
J'aurais souhaité l'afficher au format français : JJ/MM/AAAA.
Quelqu'un pourrait-il me dire comment faire ?
J'ai essayé de changer le format dans le formulaire
$date = date("Y-m-d");
$date = date("d-m-Y");
mais j'ai un autre problème lors de l'affichage de l'année qui reprend le jour et le mois, au lieu de 2004.
Dans phpMyAdmin je n'arrive pas à changer le format de la date qui revient toujours au format américain.
Voici les scripts du formulaire et de l'affichage :
FORMULAIRE :
<?php
include("sql.inc");
mysql_connect($hote, $user, $password);
mysql_select_db("perso")
or die("Ouverture base impossible");
$date = date("Y-m-d");
$heure = date("H:i:s");
if($nom)
{
mysql_query("INSERT INTO livre(nom,message,date,heure)
VALUES('$nom','$message','$date','$heure')")
or die("Ecriture impossible");
}
mysql_close;
?>
AFFICHAGE:
<?
include("sql.inc");
mysql_connect($hote, $user, $password);
mysql_select_db("perso")
or die("Ouverture base impossible");
{
$table=mysql_query("SELECT * FROM livre order by ordre DESC");
}
mysql_close;
echo"<CENTER><TABLE BORDER=0 bgcolor='#FFFFFF'>";
echo"<TR>";
echo"<TD><CENTER>";
while ($ligne=mysql_fetch_object($table))
{
echo"<TR>";
echo"<TD><CENTER><B>$ligne->message<BR><BR>";
echo"<TR>";
echo"<TD><B>$ligne->nom le $ligne->date à $ligne->heure";
echo"<BR><hr>";
}
?>
Merci d'avance pour vos réponses.
A voir également:
- Formatdate php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
26 réponses
Salut tout le monde,
J'ai pas tout lu mais j'ai l'impression que vous vous prenez la tête pour rien.
Voici ma requête pour mon livre d'or :
J'utilise la fonction NOW() qui a été faites exprès pour ça. Ensuite pour afficher le contenu ma requête est :
DATE_FORMAT(temps, \'%d/%m/%Y \à %H:%i:%S\') AS DateTemps
Ceci va afficher : 30/11/2006 à 17:33:04
Dans ma base de donné le champs est de type datetime et ce nomme temps. La date est enregistré au format 0000-00-00 00:00:00.
Et la boucle while va me retourner une variable $donnees['DateTemps'].
J'ai pas tout lu mais j'ai l'impression que vous vous prenez la tête pour rien.
Voici ma requête pour mon livre d'or :
mysql_query("INSERT INTO cxp_livreor VALUES('', '" . htmlentities($_POST['pseudo'], ENT_QUOTES) . "', '" . nl2br(htmlentities($_POST['message'])) . "', '" . htmlentities($_POST['age'], ENT_QUOTES) . "', '" . htmlentities($_POST['pays']) . "', '" . $_SERVER["REMOTE_ADDR"] . "', NOW())");
J'utilise la fonction NOW() qui a été faites exprès pour ça. Ensuite pour afficher le contenu ma requête est :
mysql_query('SELECT id, pseudo, message, age, pays, DATE_FORMAT(temps, \'%d/%m/%Y \à %H:%i:%S\') AS DateTemps FROM cxp_livreor ORDER BY ID DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
DATE_FORMAT(temps, \'%d/%m/%Y \à %H:%i:%S\') AS DateTemps
Ceci va afficher : 30/11/2006 à 17:33:04
Dans ma base de donné le champs est de type datetime et ce nomme temps. La date est enregistré au format 0000-00-00 00:00:00.
Et la boucle while va me retourner une variable $donnees['DateTemps'].
en fait, ce que vous voulez faire est simple : transformer le format yyyy-mm-dd de mysql en jj-mm-aaaa bien de chez nous pour l'affichage en php.
voici donc 2 fonctions utiles qui seront appelées avantd'afficher ou avant d'enregistrer dans mysql si on veut une entrée standart francophone.
/////////////////////////////
// version 0.10 transforme une date us aaaa-mm-jj en date fr jj-mm-aaaa
//et vice-versa
/////////////////////////////
function changedateusfr($dateus)
{
$datefr=$dateus{8}.$dateus{9}."-".$dateus{5}.$dateus{6}."-".$dateus{0}.$dateus{1}.$dateus{2}.$dateus{3};
return $datefr;
}
function changedatefrus($datefr)
{
$dateus=$datefr{6}.$datefr{7}.$datefr{8}.$datefr{9}."-".$datefr{3}.$datefr{4}."-".$datefr{0}.$datefr{1};
return $dateus;
}
on appele les fonctions de cette façon :
pour transformet d'US en FR:
datefr=changedateusfr($dateprisedansmysql);
pour transformer d'US en FR:
dateus=changedatefrus($datefr);
maintenant je fais comme cela mais il y a peut-être plus simple...
voici donc 2 fonctions utiles qui seront appelées avantd'afficher ou avant d'enregistrer dans mysql si on veut une entrée standart francophone.
/////////////////////////////
// version 0.10 transforme une date us aaaa-mm-jj en date fr jj-mm-aaaa
//et vice-versa
/////////////////////////////
function changedateusfr($dateus)
{
$datefr=$dateus{8}.$dateus{9}."-".$dateus{5}.$dateus{6}."-".$dateus{0}.$dateus{1}.$dateus{2}.$dateus{3};
return $datefr;
}
function changedatefrus($datefr)
{
$dateus=$datefr{6}.$datefr{7}.$datefr{8}.$datefr{9}."-".$datefr{3}.$datefr{4}."-".$datefr{0}.$datefr{1};
return $dateus;
}
on appele les fonctions de cette façon :
pour transformet d'US en FR:
datefr=changedateusfr($dateprisedansmysql);
pour transformer d'US en FR:
dateus=changedatefrus($datefr);
maintenant je fais comme cela mais il y a peut-être plus simple...
Je relève le sujet!
J'ai modifier la fonction
Pas besoin de mettre ."-"., à la place utilisons les cases vides à savoir $dateus{7} et $dateus{4}
J'ai rajouter les heures au passage.
Voici donc la fonction
J'ai modifier la fonction
Pas besoin de mettre ."-"., à la place utilisons les cases vides à savoir $dateus{7} et $dateus{4}
J'ai rajouter les heures au passage.
Voici donc la fonction
function changedateusfr($dateus) { $datefr="Le ".$dateus{8}.$dateus{9}.$dateus{7}.$dateus{5}.$dateus{6}.$dateus{4}.$dateus{0}.$dateus{1}.$dateus{2}.$dateus{3}." à ".$dateus{11}.$dateus{12}.$dateus{13}.$dateus{14}.$dateus{15}.$dateus{16}.$dateus{17}.$dateus{18}; return $datefr; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pourquoi convertir une date avec PHP quand MySQL peut le faire ?
SELECT DATE_FORMAT(date_news, '%d/%m/%Y %H:%i') AS date_news
http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
SELECT DATE_FORMAT(date_news, '%d/%m/%Y %H:%i') AS date_news
http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
une fosi le timestamp enregistré avec time(), ce qui vosu donnera dans la bdd une date du genre 145214567 (exmple hein!)
Vous l' afficher tres simplement avec:
'nous somme le date(d/m/y, $timestamp)' ce qui donnera 'nous sommes le 10/10/09 (je sais pas le combien on est mais le resultat est la!)
Vous pouvez verifier sur la page d' accueil du site que je suis en train de bricoler www.ville-de-bernay.com (la date des news)
Pour afficher l' heure, meme systeme:
date(d/m/y à h/m, $timestamp) ce qui donnera le 10/10/09 à 10h24
Vous l' afficher tres simplement avec:
'nous somme le date(d/m/y, $timestamp)' ce qui donnera 'nous sommes le 10/10/09 (je sais pas le combien on est mais le resultat est la!)
Vous pouvez verifier sur la page d' accueil du site que je suis en train de bricoler www.ville-de-bernay.com (la date des news)
Pour afficher l' heure, meme systeme:
date(d/m/y à h/m, $timestamp) ce qui donnera le 10/10/09 à 10h24
Écoute j'ai pas trouvé compliqué et ce sont mes premières heures de PHP, ajoute le code :
$tab = explode("-",$date_env);
$annee = $tab[0];
$mois = $tab[1];
if($mois==1)$mois='janvier';
if($mois==2)$mois='fevrier';
if($mois==3)$mois='mars';
if($mois==4)$mois='avril';
if($mois==5)$mois='mai';
if($mois==6)$mois='juin';
if($mois==7)$mois='juillet';
if($mois==8)$mois='aout';
if($mois==9)$mois='septembre';
if($mois==10)$mois='octobre';
if($mois==11)$mois='novembre';
if($mois==12)$mois='decembre';
$jour = $tab[2];
$date_env=$jour." ".$mois." ".$annee;
"$date_env" => C'est la date qui vient de la table SQL.
Y a juste à ajouter cette partie de code et ça fonctionne très bien !!!!
Allez bonne chance !
$tab = explode("-",$date_env);
$annee = $tab[0];
$mois = $tab[1];
if($mois==1)$mois='janvier';
if($mois==2)$mois='fevrier';
if($mois==3)$mois='mars';
if($mois==4)$mois='avril';
if($mois==5)$mois='mai';
if($mois==6)$mois='juin';
if($mois==7)$mois='juillet';
if($mois==8)$mois='aout';
if($mois==9)$mois='septembre';
if($mois==10)$mois='octobre';
if($mois==11)$mois='novembre';
if($mois==12)$mois='decembre';
$jour = $tab[2];
$date_env=$jour." ".$mois." ".$annee;
"$date_env" => C'est la date qui vient de la table SQL.
Y a juste à ajouter cette partie de code et ça fonctionne très bien !!!!
Allez bonne chance !
C'est normal, il ne faut pas modifier la date avant l'enregistrement dans MySQL, mais la modifier lors de l'affichage. Il faut récupérer à partir de la date que tu veux afficher un timestamp, que tu passes à date avec d'autres arguments, et que tu peux ensuite afficher comme tu le veux.
Va voi sur www.php.net, dans la liste des fonctions, recherche date et tu devrais avoir qqchose de precis.
++
Fat_Cartman,
Parce que je le vaux bien...
Va voi sur www.php.net, dans la liste des fonctions, recherche date et tu devrais avoir qqchose de precis.
++
Fat_Cartman,
Parce que je le vaux bien...
tu met la fonction changedateusfr($dateus) au debut de ta page entre deux <?php ?> si besoin
et tu l'appelles quand tu en a besoin, c'est à dire a l'endroit ou tu veux qu'elle s'affiche
et tu l'appelles quand tu en a besoin, c'est à dire a l'endroit ou tu veux qu'elle s'affiche
moi j'utilise un truc comme ça
function switchdate($var)
{
$tab = explode("-",$var);
$datechangee = $tab[2]."-".$tab[1]."-".$tab[0];
return $datechangee ;
}
la même fonction sert à passer du format anglais au format français puisque l'on intervertit simplement le jour avec l'année
si :
$madate = 2009-03-04 alors changedate($madate) renverra 04-03-2009
si :
$madate = 04-03-2009 alors changedate($madate) renverra 2009-03-04
c'est simple, rapide et drôlement efficace
function switchdate($var)
{
$tab = explode("-",$var);
$datechangee = $tab[2]."-".$tab[1]."-".$tab[0];
return $datechangee ;
}
la même fonction sert à passer du format anglais au format français puisque l'on intervertit simplement le jour avec l'année
si :
$madate = 2009-03-04 alors changedate($madate) renverra 04-03-2009
si :
$madate = 04-03-2009 alors changedate($madate) renverra 2009-03-04
c'est simple, rapide et drôlement efficace
Moi, une fois la date récupérée, tu utilise explode("-", $date) qui retourne maintenant un tableau contenant dans l'ordre l'année, le mois et le jour. Ensuite tu fais une concaténation dans l'odre que tu veux.
Exemple
$date='2007-12-23';
$tab= explode("-", $date);
$dateEnFrancais=$tab[2] . '/'.$tab[1] . '/'.$tab[0] ;
voilà
Exemple
$date='2007-12-23';
$tab= explode("-", $date);
$dateEnFrancais=$tab[2] . '/'.$tab[1] . '/'.$tab[0] ;
voilà
Bonjour,
Est ce que tu as trouvé la réponse à ton problème ?
Je cherche à faire la même chose et je galère un peu là...
Merci, A+.
Est ce que tu as trouvé la réponse à ton problème ?
Je cherche à faire la même chose et je galère un peu là...
Merci, A+.
Bonjour,
Non je n'ai pas encore compris comment faire, il faut dire que je n'ai pas eu beaucoup de temps.
Je compte me pencher sur le prblème pendant mes vacances en juin.
Si je trouve rapidement, je mettrais la solution sur le forum.
A+
Non je n'ai pas encore compris comment faire, il faut dire que je n'ai pas eu beaucoup de temps.
Je compte me pencher sur le prblème pendant mes vacances en juin.
Si je trouve rapidement, je mettrais la solution sur le forum.
A+
Regarde y a un mec qui s'appelle Freud et qui a une solution "Et ça, c'est pas plus simple... ?", l'adresse c'est http://www.phpindex.com/trucsetastuces/trucsetastuces_lire.php3?element=180.
J'ai adopté sa solution, simple et efficace.
Dis moi ce que tu en penses !
A++
J'ai adopté sa solution, simple et efficace.
Dis moi ce que tu en penses !
A++
Je suis allé voir ton lien, c'est très intéressant, mais aussi beaucoup moins simple que je ne croyais, je pense que pour le moment je vais laisser le format YYYY/MM/DD.
Merci encore.
Merci encore.
J'ai inséré le code dans la partie affichage de ma page, après "or die("ouvertue base impossible);", après "mysql_close;" , avant et après la sélection de la table, avant et après "while", ça ne marche pas en l'état, je vais chercher plus tard.
Merci encore, quand même.
Merci encore, quand même.
Bonjour,j'aimerai savoir ou il faut insérer dans le code de ma page web la fonction citée dans le message précédant :
function changedateusfr($dateus)
{
$datefr=$dateus{8}.$dateus{9}."-".$dateus{5}.$dateus{6}."-".$dateus{0}.$dateus{1}.$dateus{2}.$dateus{3};
return $datefr;
}
et l'appel à cette fonction :
datefr=changedateusfr($dateprisedansmysql);
Merci pour votre aide !!!
function changedateusfr($dateus)
{
$datefr=$dateus{8}.$dateus{9}."-".$dateus{5}.$dateus{6}."-".$dateus{0}.$dateus{1}.$dateus{2}.$dateus{3};
return $datefr;
}
et l'appel à cette fonction :
datefr=changedateusfr($dateprisedansmysql);
Merci pour votre aide !!!
Même 4 ans après, ça m'a aidé ^^