Bonjour à tous,

Via une requête SQL, je récupère plusieurs informations dont des dates. Elles sont dans des champs de type datetime.
Quand je les affiche actuellement, elles sont comme ceci : 2017-04-12 14:30:00 ce qui est normal.

Je souhaiterai les afficher sous forme de phrase, comme par exemple ici : 12 Avril 2017

Voici mon code actuel :

<?php
                    try
                    {
                        $bdd = new PDO('mysql:host=localhost;dbname=medrano2017;charset=utf8', 'root', '');
                        $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                    }
                    catch(Exception $e)
                    {
                        die('Erreur : '.$e->getMessage());
                    }

                    $reponse = $bdd->query('SELECT id_event,
                      id_tournee,
                      evenement.ville_event       AS ville,
                      evenement.lien_resa_event   AS lienresa,
                      evenement.adresse_event     AS adresse,
                      tournee.description_tournee AS descriptiontournee,
                      tournee.nom_tournee         AS nomtournee,
                      (SELECT MIN(s.dateheure_seance) FROM seance s WHERE s.id_event = evenement.id_event) AS premiereSeance,
                      (SELECT MAX(s.dateheure_seance) FROM seance s WHERE s.id_event = evenement.id_event) AS derniereSeance
                    FROM tournee
                    JOIN evenement USING(id_tournee)
                    ORDER BY premiereSeance,derniereSeance');

                    while ($donnees = $reponse->fetch())
                    {
                ?>
                    <tr>
                        <td><p class="villetournee"><?php echo ''.$donnees['ville'].'';?></p> <p class="nomtournee"><?php echo ''.$donnees['nomtournee'].'';?></p></td>
                        <td> Du <?php echo ''.$donnees['premiereSeance'].'';?> <br>au <?php echo ''.$donnees['derniereSeance'].'';?></td>
                        <td><?php echo ''.$donnees['adresse'].'';?></td>
                        <td><a class="lienresa" href="#">RESERVER</a></td>
                    </tr>
                <?php
                    }
                        $reponse->closeCursor();
                ?>

Si vous avez une idée je suis vraiment preneur !
Merci a tous d'avance.

3 réponses


Blinkers
Réponse acceptée

Hello,

Tu peux essayer quelque chose du style :

<?php
setlocale(LC_ALL, 'French', 'fr-FR.utf8','fra', 'fr-FR', 'fr_FR', 'fr', 'fr_FR@euro');
$ta_date_formatee = strftime("%d %B %Y", strtotime($ta_date_au_format_datetime));
?>

Après ca dépend des local disponibles sur ton serveur, sinon tu est obligé de faire un tableau (array) qui contiendrait tout les mois (1 => 'Janvier', 2 => 'Février'...)

C'est parfait... Merci beaucoup !