IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

afficher une date en littéral français


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Par défaut afficher une date en littéral français
    Bonjour à tous,
    Je désire mettre à jour mes scripts PHP (de 7.4 à 8.2) et je butte sur la nouvelle écriture des dates en littéral français.
    Jusqu'à maintenant j'utilisais 'strftime()' et il me faut maintenant 'creer' un format et utiliser la classe 'intldateformatter'.
    Je suis débutant en POO... et j'ai besoin de votre aide pour faire du 'procédural' avec ces nouvelles instructions.

    Par exemple, comment afficher en littéral français la date du jour en partant de 2020-30-01 et obtenir : lundi 31 janvier 2023 à 06:13:00.
    J'aimerais aussi pouvoir décomposer cet affichage en 4 variables 'string' principales :
    - Le jour : Lundi
    - La date : 31
    - Le mois : Janvier
    - L'année : 2023

    Je vous remercie pour votre aide.
    Cordialement
    Maub85

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 571
    Par défaut
    vous pouvez trouver les informations d'utilisation dans la documentation là :
    https://www.php.net/manual/fr/intlda...ter.format.php
    https://www.php.net/manual/fr/class....eformatter.php

  3. #3
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Par défaut
    Bonjour,

    Tout sur intldateformatter : https://www.php.net/manual/fr/intlda...ter.format.php
    Il faudra choisir : fr-FR et pour les autres paramètres, un peu de test, je ne suis pas PDO non plus, mais cela ne me semble pas trop compliqué

    Il vaut en effet mieux ne plus utiliser strftime, il y a ce message : Avertissement Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Il est fortement recommandé de les éviter.

  4. #4
    Membre confirmé
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Par défaut
    Merci Mathieu et ddaweb pour vos réponses....

    Je vais essayer de m'en sortir en procédural en mettant 'fr-FR' à la place de 'de-DE' ou de 'en-US'

    Voici mon code :

    # $date_deces = "2022-12-12";

    echo "date_deces : ".$date_deces; echo "<br>"; echo "<br>";

    $datefmt = datefmt_create('fr_FR',\IntlDateFormatter::FULL,\IntlDateFormatter::FULL,'Europe/London',\IntlDateFormatter::GREGORIAN );

    echo datefmt_format($datefmt, time());

    exit;

    #

    Le résultat approche de mon souhait, mais j'obtiens la date du jour : lundi 30 janvier 2023 à 16:04:41 heure moyenne de Greenwich.

    Où dois-je mettre la variable de date (date_deces = '2022-12-12') que je voudrais produire/traduire en texte ?

    Merci à l'avance.
    Maub85

  5. #5
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Par défaut
    Voici presque la solution, à voir avec l'heure d'hiver si elle existe encore d'ici là ... plus le temps de chercher plus loin aujourd'hui : ton time() m'a mit la puce à l'oreille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $date_deces ='2023-02-02 22:22:22';
     
    $datefmt = datefmt_create('fr_FR',\IntlDateFormatter::FULL,\IntlDateFormatter::FULL,'Europe/London',\IntlDateFormatter::GREGORIAN );
     
    echo datefmt_format($datefmt, strtotime($date_deces));
     
    ?>
    Affichage : jeudi 2 février 2023 à 22:22:22 heure moyenne de Greenwich
    S'il n'y a pas d'heure, ce sera 00:00:00.

    Il y a moyen de formater ce qui sera affiché, mais il faut approfondir

    NB : c'est mieux d'utiliser la balise # pour mettre du code

  6. #6
    Membre confirmé
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Par défaut
    OK, c'est parfait, Merci ddaweb,

    Pour compléter ta suggestion, la date que l'on veut faire afficher (en texte) doit être 'proposée en timestamp.

    Voici mon code (définitif) qui marche parfaitement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    //  Formattage de la date en littéral français		
    			$date_deces 	= $ligne['date_deces']; 
    			$date_dec_stamp = strtotime($date_deces);
    			$datefmt 		= datefmt_create('fr_FR',\IntlDateFormatter::FULL,\IntlDateFormatter::FULL,'Europe/London',\IntlDateFormatter::GREGORIAN );
    			$date_deces 	= datefmt_format($datefmt, $date_dec_stamp);
    			$decoupe_dec	= explode(" ",$date_deces, -3);													//  découpe en 4 morceaux : jour, date, mois, année
    			$date_deces_lit	= $decoupe_dec[0]." ".$decoupe_dec[1]." ".$decoupe_dec[2]." ".$decoupe_dec[3];	               //  découpe en 4 morceaux : jour, date, mois, année
    			echo "<td> &nbsp ".$date_deces_lit."</td>";
    Si ça peut aider les autres ... pour remplacer le strftime() devenu obsolète à partir de PHP 8.1

    Merci à vous tous.

    Cordialement
    Maub85

  7. #7
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 571
    Par défaut
    vous n'avez pas besoin de faire de découpage, vous pouvez utiliser les paramètres pour obtenir chaque élément séparément :
    https://www.developpez.net/forums/d2.../#post11916372

  8. #8
    Membre confirmé
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Par défaut
    OK, merci à nouveau
    Cordialement
    Maub85

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Afficher une date au format français dans une Texte_box
    Par facteur dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/04/2014, 12h57
  2. Afficher une date au format français
    Par mateo78711 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/01/2013, 16h48
  3. afficher une date d'1 monthcalendar d'un datetimepicker
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/07/2005, 10h00
  4. [JTable] Afficher une date dans un tableau / Renderer
    Par isak dans le forum Composants
    Réponses: 3
    Dernier message: 11/07/2005, 17h09
  5. Insérer une date au format français dans un champ
    Par EpOnYmE187 dans le forum Installation
    Réponses: 2
    Dernier message: 14/06/2005, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo