8721 sujets

Développement web côté serveur, CMS

Bonjour

Je n'y connais rien ou pas grand chose en php et je sollicite votre aide.

Voilà, je voudrais que les date de création de posts apparaissent en Français et pas en Anglais.

Voici le code php de la page en question.

case 'list':
		$result = mysql_query('SELECT * FROM `miniblog`') or die(mysql_error());
		while($row = mysql_fetch_assoc($result))
		{
		$published = ($row['published'] == 1) ? 'Publier' : 'En attente';			
		$preview_link = ($row['published'] == 1) ? "<a href=\"../{$config['miniblog-filename']}?post={$row['post_slug']}\"><img src=\"images/view.png\" alt=\"View post\" /></a>&nbsp;&nbsp;&nbsp;" : '';
		$post_list .= "<tr>
								<td><a href=\"admin.php?mode=edit&id={$row['post_id']}\">{$row['post_title']}</a></td>
		<td>" . date($config['date-format'], $row['date']) . "</td>
		<td>{$published}</td>
		<td>
		{$preview_link}
		<a href=\"admin.php?mode=delete&id={$row['post_id']}\" onclick=\"return confirm_dialog('admin.php?mode=delete&id={$row['post_id']}', 'This will remove the post, are you sure you want to continue?')\"><img src=\"images/delete.png\" alt=\"Remove\" /></a></td></tr>";
		}
		include('list.php'); 
break;




J'ai compris que ce script récupére la date de SQL avec $row['date'], mais, malgré mes recherche, je n'ai pas compris comment faire en sorte que la date affiché soit sous la forme "Mardi 1 août" plutôt que sous la forme "Thursday 1 August".

Si vous avez une solution à me donner je serais très heureux.

Merci par avance
Bonjour,

regarde du côté de Datetime ; cette classe possède une fonction format().

Ce qui donnerait qqch du genre :

$ma_date = new DateTime($date_recuperee_de_ta_bdd);
echo $ma_date->format('d-m-Y');
Je mets cela :
$ma_date = new DateTime($date_recuperee_de_ta_bdd);
echo $ma_date->format('d-m-Y');

à la place de cela :
$row['date']


C'est ça ?
... Euh non.

Par où commencer ... $row['date'] est la valeur que tu récupères de ta base de donnée... T'as juste à remplacer $date_recuperee_de_ta_bdd par $row['date']...

et là ou tu affichés ta date tu mets : echo $ma_date->format('d-m-Y');

Mais attention, je l'ai fait de tête donc c'est possible qu'il y ai des erreurs de synthaxe ; 'est juste pour t'en inspirer...
Merci mais ça ne fonctionne pas ou j'ai rien compris.

La date s'affiche directement dans la page avec la valeur $row['date'].
$ma_date = new DateTime($date_recuperee_de_ta_bdd);
ce code récupére la valeur dans sql et la transforme, c'est cela ?

echo $ma_date->format('d-m-Y');
cela devrait afficher le nouveau formatage de date au bon endroit, c'est cela ?
mais quand je fait cela,
<td>" . date($config['date-format'], echo $ma_date->format('d-m-Y');) . "</td>
le php me signale une erreur.

et quand je fait cela
<td>"echo $ma_date->format('d-m-Y');</td>
aussi.
Je suis trop nul.
tepe a écrit :

$ma_date = new DateTime($date_recuperee_de_ta_bdd);
ce code récupére la valeur dans sql et la transforme, c'est cela ?


Non, il formate une date de type AAAA-MM-JJ au format que tu souhaites ; il faut donc remplacer $date_recuperee_de_ta_bdd par la date que tu récupères depuis ton sql : soit suivant ton premier post :
$row['date']


tepe a écrit :
echo $ma_date-&gt;format('d-m-Y');
cela devrait afficher le nouveau formatage de date au bon endroit, c'est cela ?

Oui.

tepe a écrit :

mais quand je fait cela,
&lt;td&gt;&quot; . date($config['date-format'], echo $ma_date-&gt;format('d-m-Y');) . &quot;&lt;/td&gt;
le php me signale une erreur.

et quand je fait cela
&lt;td&gt;&quot;echo $ma_date-&gt;format('d-m-Y');&lt;/td&gt;
aussi..



echo "<td>".$ma_date->format($config['date-format']) ."</td>";

//ou

<td><?php echo $ma_date->format($config['date-format']) ; ?></td>


Le problème dans tes deux tentatives et uniquement de la synthaxe :
1) pas de ; dans les fonctions
2) mauvaise concaténation entre html et php

Peux être serait il judicieux de commencer par la compréhension du langage PHP (basique) avant de se lancer dans des formatages de date...

Bon courage pour la suite.

EDIT : PHP Manuel ; la documentation la plus fiable en PHP
Modifié par mini-truc (11 Sep 2013 - 12:02)
JE serais tenté de dire qu'il faut ajouter un petit setlocale aussi... parce que fondamentalement, la classe Datetime fait appel aux mêmes fonctions de base que la fonction date.
mini-truc :
Merci pour ton conseil.

Je vais donc me contenter d'afficher les dates avec des chiffres.
QuentinC a écrit :
JE serais tenté de dire qu'il faut ajouter un petit setlocale aussi... parce que fondamentalement, la classe Datetime fait appel aux mêmes fonctions de base que la fonction date.


Je suis d'accord avec toi Smiley smile sauf que c'est pas ce qui est demandé et si tu lis la suite c'est pour du multilangue ; donc généralement on laisse la langue par défaut ...