manipulation des champs d'une table mysql

Eléphanteau du PHP | 13 Messages

13 janv. 2015, 12:58

Bonjour à tous;
Voilà le code me permettant de convertir le temps en date sous forme :AAAA-MM-JJ HH:MM:SS:
echo date('Y-m-d', 1392461046).' '.date('H:i:s', 1392461046);


Mon problème est que je veux appliquer cette fonction à toutes les valeurs de champs time de ma table MYSQL.
Quelqun pourrait me dire comment procéder SVP? .
Je vous remercie d'avance.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 janv. 2015, 13:20

Bonjour yani65,

Si dans ta table SQL, les dates apparaissent sous la forme 1392461046, c'est qu'elles sont stockées au format TIMESTAMP.
Si tu veux qu'elles soient stockées au format Y-m-d H:i:s, il faut que tu modifies la structure de ta table pour que ton champ date ait le format DATETIME, c'est faisable dans phpmyadmin assez facilement.

Toutefois, il faut te poser la question, est-ce que cela a une réelle utilité pour toi de les stocker en DATETIME plutôt qu'en TIMESTAMP.
Sachant que de toute façon, il faudra je pense que tu les retraites avec PHP avant affichage.

Ton exemple de code, peut notamment se simplifier ainsi :
echo date('Y-m-d H:i:s', 1392461046);
et si tu veux afficher la date au format français :
echo date('d/m/Y H:i:s', 1392461046);
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 13 Messages

13 janv. 2015, 15:29

Merci infiniment @rthur pour ta réponse dont j'ai appris plein de choses, mais malheureusement je ne peux pas modifier le type de champs time, car ce n'est pas moi qui a créé la table, cette dernière (table) est créé automatiquement dans la base de donnée de la plate-forme d'enseignement à distance "moodle", elle s'appelle mdl_log.
voici le script que j'ai écris , le résultat de son exécution s'affiche correctement sur le navigateur, mais dans phpmyadmin , je ne vois pas de changement,surement , il me manque quelque chose dans le script et comme je suis débutante en php alors je ne sais pas quoi?
include ('connection.php');

$db=mysql_select_db("moodle");

$sql_sel= "SELECT DISTINCT time  FROM mdl_log";
$res_sql_sel=mysql_query($sql_sel);
if($res_sql_sel==FALSE)
{die(mysql_error());
mysql_close();}

while ($line_sql_sel= mysql_fetch_array($res_sql_sel))
 {
$temps=$line_sql_sel["time"];
echo date('Y-m-d', $temps).` `.date('H:i:s', $temps).'<br>';

}

Merci beaucous

Mammouth du PHP | 688 Messages

13 janv. 2015, 16:33

c'est à l'affichage, comme dans le code donné, qu'il faut transformer les données pour avoir ce que l'on veux, pas à la base vu que l'on ne la maitrise pas.
c'est donc le vrai code qui affiche les données qu'il faut changer.