Transformer une valeur UNIX en date d/m/Y

Résolu/Fermé
CreaZo Messages postés 15 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 24 juin 2016 - Modifié par jordane45 le 19/12/2015 à 17:39
CreaZo Messages postés 15 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 24 juin 2016 - 19 déc. 2015 à 19:26
Bonjour,

Via ma BDD, j'extrais des données pour obtenir une date de désinscription, seulement cette date est sous format UNIX et dans mon tableau final, ce n'est pas très compréhensible :

Email Nom de la liste Date de désinscription


*
      • @***.fr Clients potentiels 1447856186


Je souhaite donc agir sur cette date pour la passer en d/m/Y, voici mon code :

<html>
<head>
<title>Ceci est un test</title>
</head>
<body>
<?php
// lancement de la requête (on impose aucune condition puisque l'on désire obtenir la liste complète des propriétaires
$sql = 'SELECT DISTINCT * 
  FROM wp_wysija_user_list UL 
  LEFT JOIN wp_wysija_user U ON U.user_id = UL.user_id 
  LEFT JOIN wp_wysija_campaign_list C ON C.list_id = UL.list_id 
  LEFT JOIN wp_wysija_list L ON L.list_id = UL.list_id 
  WHERE unsub_date!="0" 
  ORDER BY `UL`.`unsub_date` DESC;
';


// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b>Email</b></td>';
echo '<td bgcolor="#669999"><b>Nom de la liste</b></td>';
echo '<td bgcolor="#669999"><b>Date de désinscription</b></td>';
echo '</tr>'."\n";


// on va scanner tous les tuples un par un
while($data = mysql_fetch_array($req)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$data['email'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$data['name'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$data['unsub_date'].'</td>';
//echo '<td bgcolor="#CCCCCC">'.date('d/m/Y', 1447856186).'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
mysql_free_result ($req);
mysql_close ();
?>
</body>
</html>


Je dois donc agir sur qui me renvoi pour l'instant un format UNIX (intégré comme cela dans la BDD):
$data['unsub_date']

Je n'arrive pas à définir le fait de récupérer une valeur, de la traiter et ensuite de la mettre dans mon tableau.


Merci pour votre aide et bonne soirée à vous tous !

Jonathan

1 réponse

jordane45 Messages postés 38402 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 février 2025 4 732
19 déc. 2015 à 17:36
Fais ta conversion directement dans ta requête SQL.
Regardes ceci :

FROM_UNIXTIME() => Format UNIX timestamp as a date


https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html


0
jordane45 Messages postés 38402 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 février 2025 4 732
19 déc. 2015 à 17:41
Enfin... si tu veux absolument le faire depuis ton PHP .. il suffit de remplacer la "valeur" .. par ta variable
echo '<td bgcolor="#CCCCCC">'.$data['unsub_date'].'</td>';
//echo '<td bgcolor="#CCCCCC">'.date('d/m/Y', 1447856186).'</td>';

Donne :
echo '<td bgcolor="#CCCCCC">'.date('d/m/Y', $data['unsub_date']).'</td>';
0
CreaZo Messages postés 15 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 24 juin 2016
19 déc. 2015 à 17:47
Ok, j'avais essayé quelque chose dans le style mais ça ne fonctionnait pas du tout et j'étais parti sur une autre piste.

Merci beaucoup (à nouveau), par contre ton second message me fais croire que c'est pas la meilleur méthode, le plus propre serait la première ? Une histoire de bonne pratique ? Ou c'est plus léger ?
0
jordane45 Messages postés 38402 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 février 2025 4 732 > CreaZo Messages postés 15 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 24 juin 2016
19 déc. 2015 à 19:22

par contre ton second message me fais croire que c'est pas la meilleur méthode, le plus propre serait la première ? Une histoire de bonne pratique ? Ou c'est plus léger ?

Oui .

.. ;-)

C'est un peut tout ça en fait ...
Disons que si tu le fais dans ta requête .... lorsque tu vas manipuler les données dans ton code PHP tu n'auras pas à le gérer....
=> on est parfois amené à réutiliser plusieurs fois les mêmes données issue d'une seule et même requête.... et plutot que de "re-faire" 50 fois la conversion dans le code php... on ne l'aura fait qu'une seule fois dans la requete.
Après... ça reste un point de vue personnel... chacun fait comme il veut. ;-)
0
CreaZo Messages postés 15 Date d'inscription mercredi 16 septembre 2015 Statut Membre Dernière intervention 24 juin 2016
19 déc. 2015 à 19:26
C'est bien ce que j'avais compris alors ! En tout cas merci encore, tu m'as donné un énorme coup de main pour mon script, je vais m'attaquer à mes doublons maintenant (qui ne sont pas vraiment des doublons au final).

Merci à nouveau et passes de bonnes fêtes !
0