rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Format date en PHP/MySQL

Posté par pm, le jeudi 13 mai 2004 à 07:44:45
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->messag­e<BR><BR>";
echo"<TR>";
echo"<TD><B>$ligne->nom le $ligne->date à $ligne->heure";
echo"<BR><hr>";

}

?>

Merci d'avance pour vos réponses.
Répondre à pm  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
fat_cartman, le jeudi 13 mai 2004 à 08:53:38
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...
Répondre à fat_cartman

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pm, le jeudi 13 mai 2004 à 17:36:18
Merci beaucoup, je vais aller voir.
Répondre à pm

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Cédric, le jeudi 20 mai 2004 à 17:16:43
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+.
Répondre à Cédric

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pm, le jeudi 20 mai 2004 à 19:11:56
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+
Répondre à pm

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Cédric, le jeudi 20 mai 2004 à 19:50:51
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.p­hp3?element=180.

J'ai adopté sa solution, simple et efficace.
Dis moi ce que tu en penses !

A++
Répondre à Cédric

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pm, le jeudi 20 mai 2004 à 20:11:36
Merci beaucoup, je vais tester rapidement.
A+
Répondre à pm

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pm, le jeudi 20 mai 2004 à 20:39:42
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.
Répondre à pm

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Cédric, le jeudi 20 mai 2004 à 21:06:41
É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 !
Répondre à Cédric

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pm, le jeudi 20 mai 2004 à 22:00:58
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.
Répondre à pm

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
patrick, le lundi 7 juin 2004 à 11:29:23
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}.$date­us{6}."-".$dateus{0}.$dateus{1}.$dateus{2}.$dateus­{3};
return $datefr;
}

function changedatefrus($datefr)
{
$dateus=$datefr{6}.$datefr{7}.$datefr{8}.$datefr{9}."-&­quot;.$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...
Répondre à patrick

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Scootcarrouf, le lundi 25 juin 2007 à 10:13:59
Parfaite comme fonction. 1 min d'utilisation et sa fonctionne du premier coup...
Merci bien
Répondre à Scootcarrouf

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chris1925, le jeudi 15 février 2007 à 18:42:51
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}.$date­us{6}."-".$dateus{0}.$dateus{1}.$dateus{2}.$dateus­{3};
return $datefr;
}

et l'appel à cette fonction :

datefr=changedateusfr($dateprisedansmysql);

Merci pour votre aide !!!
Répondre à chris1925

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le lundi 25 juin 2007 à 13:40:58
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
Répondre à Alain42

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
romeoverso, le jeudi 28 juin 2007 à 14:17:40
salut tlm,
bon, voila, j'ai bo chercher ou poster ce message, et je suis toujours pas sûr qu'ici soit le bon endroit, mais j'ai tellement besoin d'aide, alors svp soyez indulgent!
en fait , j'ai fait un formulaire de contact en html/php en utilisant un script que j'ai trouvé dans un tuto... il marchait nikel, d'ailleur il marche tjrs mais le prob est que recement g ajouté des case ( tel , raison sociale, fax), le mail continue a arrivé mais son prendre considération a ce qui est ecrit dans les nouvelles cases... je suis pas un pros en php alors je vous passe le script, en fait il y a des ligne qui manque du coté php je pense....


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt­d">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>contactez nous</title>
<style type="text/css">
<!--
body {
background-color: #000000;
}
.style2 {font-size: 16px}
.style3 {color: fffffff}
body,td,th {
color: #999999;
font-family: Calibri;
}
#Layer1 {
position:absolute;
width:252px;
height:125px;
z-index:1;
left: 450px;
top: 173px;
}
#Layer2 {
position:absolute;
width:147px;
height:81px;
z-index:1;
left: 837px;
top: 525px;
}
#Layer3 {
position:absolute;
width:987px;
height:80px;
z-index:2;
left: 0px;
top: 0px;
}
#Layer4 {
position:absolute;
width:149px;
height:115px;
z-index:3;
left: 207px;
top: 205px;
}
-->
</style></head>

</html>
<head>
<title>Contactez moi</title>
</head>

<body>

<form method="post" action="mail.php">

<h2> </h2>
<div id="Layer2">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quo­t; codebase="http://download.macromedia.com/pub/shockwave/­cabs/flash/swflash.cab#version=7,0,19,0" width="147" height="82" title="dat">
<param name="movie" value="date.swf" />
<param name="quality" value="high" />
<embed src="date.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplaye­r" type="application/x-shockwave-flash" width="147" height="82"></embed>
</object>
</div>
<h2> </h2>
<div id="Layer3">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quo­t; codebase="http://download.macromedia.com/pub/shockwave/­cabs/flash/swflash.cab#version=7,0,19,0" width="987" height="80" title="coban">
<param name="movie" value="contactbanner.swf" />
<param name="quality" value="high" />
<embed src="contactbanner.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplaye­r" type="application/x-shockwave-flash" width="987" height="80"></embed>
</object>
</div>
<h2> <u>Informations:</u></h2>
<p>Votre E-mail: <br />
<input type="text" name="votremail" />
<p>Raison sociale: <br />
<input type="text" name="raison sociale" />
<p>N° de tél: <br />
<input type="text" name="Tél" />
<p>N° de Fax: <br />
<input type="text" name="Fax" />

<input type="hidden" name="objet" value="mail site" />
</p>
<p>
Votre message:</p>
<div id="Layer4">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quo­t; codebase="http://download.macromedia.com/pub/shockwave/­cabs/flash/swflash.cab#version=7,0,19,0" width="150" height="150" title="rot">
<param name="movie" value="rot.swf" />
<param name="quality" value="high" />
<embed src="rot.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplaye­r" type="application/x-shockwave-flash" width="150" height="150"></embed>
</object>
</div>
<p>
<textarea cols="66" rows="6" name="message"></textarea>
</p>
<p>
<input type="submit" value="Envoyer" />
</p>

</form>

<p> </p>
</body>
<html>
<?php
$verif="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{­2,4}$!";

$votremail=$_POST["votremail"];
$from=htmlentities("From: ".$votremail);
$message=stripslashes(htmlentities($_POST["message"­;]));

$destinataire="hahaha@hihhihi.com";

$objet=$_POST['objet'];

if(!preg_match($verif,$votremail))
{
echo "Votre adresse E-Mail n'est pas valide";
}

elseif (trim($message)=="")
{
echo "Votre message est vide!";
}

else
{
mail($destinataire,$objet,$message,$from);
echo "Merci de nous avoir choisis comme partenaire, votre requête est en cours de traitement";
}

?>




P.S; j'ai remplacez le mail par un bidon//// n'y faites pas attention!!!
merci infiniment a l'avance!! :) c suuuuuuuuuuper urgent svp ..
Répondre à romeoverso

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
s.spark, le dimanche 1 juillet 2007 à 20:57:25
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 :

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'].
Répondre à s.spark

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
pat, le dimanche 9 septembre 2007 à 14:23:10
utilise strtotime
du style : echo date("d/m/Y", strtotime($date1));
Répondre à pat
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger MySQL 5.0.51bMySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. Catégorie: Bases de données
Licence: Open Source
Télécharger MTV Video Converter 1.11.4MTV Video Converter - Le programme MTV Video Converter est un convertisseur vidéo vers le format MTV acceptant les formats d'entrée suivants : ...Catégorie: Conversion
Licence: Freeware/gratuit
Télécharger easyPHP 2.0b1easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données...Catégorie: Serveurs
Licence: Open Source
Plus de logiciels gratuits sur « Format date en PHP/MySQL »