Impossible d'afficher la date en français

Résolu/Fermé
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 14 mars 2012 à 15:51
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 15 mars 2012 à 13:04
Bonjour,
J'ai un champ au format datetime dans une table et l'insert se passe bien. Seulement le format est bien sur au format US (ce qui est normal). Or je n'arrive pas à afficher cette date au format français (ex. Publié le: 2012-03-13 20:44:44). Voici la ligne correspondante ci-dessous:

echo '<tr><td>Publié le: &nbsp;<i>'.$row["Publication"].'</i></td></tr>';  // on affiche la variable de mise à jour au format datetime


L'idéal serait de l'afficher ainsi: 13 mars 2012 à 20h 44 (je n'ai pas besoin des secondes encore que....). J'ai essayé un tas de combinaisons mais soit j'ai une erreur MySql soit rien ne s'affiche.
Voici, si besoin, le début de la page:
<?php
// On récupère la variable "id" correspondant a la fiche choisie
//ce script est appelé par un clic sur le lien alors l'id est passé par l'URL donc en GET 
$id = $_GET['ID']; // on récupère la requête par la variable $_GET 
$Publication = date("d-m-Y \à H:i");


Quelqu'un pourrait-il m'expliquer, avec des commentaires par exemple, comment je devrais m'y prendre ? Je n'ai jamais utilisé cette fonction car je n'ai jamais eu a afficher une date mais ici c'est important. Voir le site: http://saucede.free.fr/index.php?page=Liste_Sorties&lang=Fr (comment fait-on les liens dans ce forum ?). Cliquez sur une des lignes pour avoir le détail sans tenir compte du fait que Détails est vide car je n'arrive pas à l'écrire dans la table (contenu du textarea). Sinon tout le reste est OK, y compris l'utilisation du calendrier et la preview.
Voir ici (vous pouvez faire des tests sans problèmes car la table sera vidée à la fin des tests. http://saucede.free.fr/index.php?page=Ajout_Sortie&lang=Fr (Login=test & Pass=toto64). Original me direz-vous mais c'est provisoire.

Merci infiniment pour votre aide. J'ai parcouru des forums mais sans pouvoir appliquer la bonne syntaxe.




Le bonheur est la seule chose que l'on peut donner sans l'avoir.
A voir également:

4 réponses

AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
14 mars 2012 à 16:32
Bonjour,
Regarder par ici => https://www.php.net/manual/fr/datetime.format.php ne vous a pas aidé ? Qu'est-ce que vous avez essayé ?
0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
14 mars 2012 à 18:33
Merci AssassinTourist,

Le champ dans la table se nomme Publication. Dans le echo au lieu de mettre
echo '<tr><td>Publié le: &nbsp;<i>'.$row["Publication"].'</i></td></tr>';
j'ai écrit :
echo '<tr><td>Publié le: &nbsp;<i>'.$row[date("d-m-Y \a H:i")].'</i></td></tr>'; 
. Dans ce cas la date ne s'affiche pas du tout.
Si je fais:
echo '<tr><td>Publié le: &nbsp;<i>'.$row["Publication" = date("d-m-Y \a H:i")].'</i></td></tr>'; 
j'ai une erreur de syntaxe. Normal.
Mais en déclarant la variable ainsi dans la page détaillée avant l'affichage:
$Publication = date("d-m-Y \à H:i");
ça ne change rien. La date reste au format américain.
C'est la première fois que j'utilise des dates dans une BDD. Merci encore.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
14 mars 2012 à 19:52
Oui, non.
Si vous faites un date("quoique ce soit"), vous aurez la date du jour et non la date de votre publication récupérée en base.

Vous devez faire en deux étapes.
D'abord, récupérer la valeur de votre publication qui est :
$date_avant = $row["Publication"];

Ensuite, faire un traitement sur cette date pour lui dire en quel format tu veux l'avoir :
$date_apres = date_format($date_avant, 'd/m/y');


Ensuite, pour savoir quoi mettre dans le deuxième argument de date_format, reporte-toi à ce lien : https://www.php.net/manual/fr/function.date.php qui va te dire quel lettre utilisée pour afficher ce que tu veux. Regarde l'exemple 4 qui est le plus clair, après le tableau récapitulatif.

Et après avoir vérifier que $date_apres était bien de la forme que tu souhaitais, tu peux bien sûr faire tout ça en une seule commande, avec ton echo :

echo '<tr><td>Publié le: &nbsp;<i>'.date_format($row["Publication"], "d/m/Y").'</i></td></tr>'; 
0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
14 mars 2012 à 20:41
Aaah! Merci. J'étais un peu paumé avec cette récupération de la date dans le champ Publication (format datetime). C'est la $row qui me perturbais. Je teste ça après manger.
J'avais déjà visité les exemple d'affichage.
Milesker (mille mercis en basque, of course).

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
14 mars 2012 à 21:36
Dis-nous si ça a fonctionné =)
0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
15 mars 2012 à 13:04
Ooooh! Misèèèèère !

Fatal error: Call to undefined function: date_format() in /mnt/153/sdd/e/9/saucede/Activites/Fiche_Sortie Fr.php on line 11
Et la ligne concernée:
10- $date_avant = $row["Publication"];
11- $date_apres = date_format($date_avant, 'd-m-y \à G:i');

Je signale qu'au premier essai j'ai écrit exactement ce que tu m'a indiqué mais avec la même erreur.
Ça m'éneeeeeerve ! je m'arrache les cheveux.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0