Fonction php pour convertir date sql [Résolu]

Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
- - Dernière réponse : Gardeboue
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
- 7 janv. 2019 à 13:58
Bonjour,
Je sais que je déterre un sujet souvent évoqué mais après moultes et moultes essais j'y arrive pas.
Je cherche à convertir au moment de l'affichage ma date au format sql de base (année-mois-jour h:m:s) en jour/mois/année à h:m.
Je sauvegarde ma date avec la fonction toute faite sql now().
Lorsque je fais une requête sql directement dans phpMyAdmin çà fonctionne:
SELECT DATE_FORMAT(date_creation, '%d% %m %Y à %H:%i') AS date_fr FROM livreor

Qui une fois converti en php donne:
$sql = "SELECT DATE_FORMAT(date_creation, \'%d% %m %Y à %H:%i\') AS date_fr FROM livreor";

Je claque çà dans mon php juste avant l'echo qui affiche la date et là ma variable date_fr est vide.
Si je fais appel à vous c'est que je viens de passer une journée à essayer des tas de trucs sans résultat.
Merci de votre aide
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
25629
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 mai 2019
311
1
Merci
Bonjour,

Les backSlashes ici ne servent à rien
$sql = "SELECT DATE_FORMAT(date_creation, \'%d% %m %Y à %H:%i\') AS date_fr FROM livreor";


Il suffit de faire
$sql = "SELECT DATE_FORMAT(date_creation, '%d% %m %Y à %H:%i') AS date_fr FROM livreor";


Si le souci persiste malgré cela, pense à nous donner la suite du code php....

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources 146 internautes nous ont dit merci ce mois-ci

Gardeboue
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
-
Salut Jordan

effectivement tu as raison mais cela ne change rien.
voici toute la partie de mon code concernant l'affichage
if (isset($_GET['page']))
{
        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
        $page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))

{

$donnees['message'] = nl2br($donnees['message']);// On remplace les entrées par des <br />



$sql = "SELECT DATE_FORMAT(date_creation, '%d% %m %Y à %H:%i') AS date_fr FROM livreor";

echo '<p><font color="cyan"><u><strong>' . $donnees['pseudo'] . '</u></strong></font> a écrit le ' . $date_fr . '<br />';

echo '<p><font color="cyan"><u><strong>' . $donnees['pseudo'] . '</u></strong></font> a écrit le ' . $donnees['date_creation'] . '<br />';
		echo '<font color="white">'. $donnees['message'] . '</font></p><br />';
		
		}
		

mysql_close(); // On ferme la connexion à MySQL


je précise que la ligne 27 est un doublon de la 25 mais qui fonctionne correctement avec le format initial.
C'est la 25 que je cherche à faire fonctionner en récupérant la variable date_fr qui devrait contenir ma date au nouveau format.
jordane45
Messages postés
25629
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 mai 2019
311 -
Oulaaaa.....
Déjà.. tu utilises l'ancienne extension mysql... qui est désormais OBSOLETE.
Il faut que tu passes à PDO ou mysqli.

Ensuite.. tu as écris une requête.... mais... tu ne l'exécutes pas.... un peu normal dans ces conditions que ça ne te retourne rien non. ??

Et puis pourquoi faire une nouvelle requête... il sufft de modifier la première

$sql = "SELECT  T.* 
                          , DATE_FORMAT(T.date_creation, '%d %m %Y à %H:%i') AS date_fr 
            FROM livreor  T
            ORDER BY T.id DESC 
            LIMIT " . $premierMessageAafficher . "," . $nombreDeMessagesParPage;

$reponse = mysql_query($sql); // edit : $sql et non $sql1

while ($donnees = mysql_fetch_array($reponse))

{
Gardeboue
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
-
j'ai fais l'essai de ton code après avoir enlevé le 1 du sql en ligne 9 qui me renvoyait une erreur mais date_fr est toujours vide
jordane45
Messages postés
25629
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 mai 2019
311 > Gardeboue
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
-
Dis voir... tu récupères où $date_fr ??
Il faut faire comme pour les autres données issues de la bdd bien entendu...
$donnees['date_fr']
Gardeboue
Messages postés
49
Date d'inscription
mardi 9 mai 2017
Statut
Membre
Dernière intervention
7 janvier 2019
-
Je la récupère... bennnn.... heuuuuuu....
Ok je sors !!!!
en fait j'avais pas capté que la modif s’opérait au niveau de la bd
çà marche mon ami
je crois que c'est pas la première fois que tu me dépannes.
Un grand merci à toi
Commenter la réponse de jordane45