Transformer une valeur UNIX en date d/m/Y [Résolu/Fermé]

Signaler
Messages postés
15
Date d'inscription
mercredi 16 septembre 2015
Statut
Membre
Dernière intervention
24 juin 2016
-
Messages postés
15
Date d'inscription
mercredi 16 septembre 2015
Statut
Membre
Dernière intervention
24 juin 2016
-
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

Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
3 562
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


Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
3 562
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>';
Messages postés
15
Date d'inscription
mercredi 16 septembre 2015
Statut
Membre
Dernière intervention
24 juin 2016

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 ?
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
3 562 >
Messages postés
15
Date d'inscription
mercredi 16 septembre 2015
Statut
Membre
Dernière intervention
24 juin 2016


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. ;-)
Messages postés
15
Date d'inscription
mercredi 16 septembre 2015
Statut
Membre
Dernière intervention
24 juin 2016

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 !