Impossible d'afficher la date en français

Résolu
txiki Messages postés 6819 Statut Contributeur -  
txiki Messages postés 6819 Statut Contributeur -
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 7838 Statut Contributeur 1 312
 
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 6819 Statut Contributeur 523
 
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 7838 Statut Contributeur 1 312
 
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 6819 Statut Contributeur 523
 
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 7838 Statut Contributeur 1 312
 
Dis-nous si ça a fonctionné =)
0
txiki Messages postés 6819 Statut Contributeur 523
 
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