Formatage d'une date avec la classe PHP IntlDatePatternGenerator

Publié le 03/08/2024 • Actualisé le 03/08/2024


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Dans ce bout de code, nous voyons comment formater une date avec la classe PHP IntlDatePatternGenerator. On définit un motif générique puis un motif « idéal » correspondant à une locale donnée est calculé. Enfin, on peut formater la date en grâce à ce motif localisé.


<?php

declare(strict_types=1);

namespace App\Controller\Snippet;

/**
 * J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
 * Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
 * ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
 * Les services sont injectés dans le constructeur du contrôleur principal.
 */
trait Snippet312Trait
{
    public function snippet312(): void
    {
        $datePattern = 'YYYYMMdd';
        $today = \DateTimeImmutable::createFromFormat('Y-m-d', '2024-08-22');
        $dePg = new \IntlDatePatternGenerator('de_DE');
        $pattern = $dePg->getBestPattern($datePattern);
        echo 'de_DE: ', \IntlDateFormatter::formatObject($today, $pattern, 'de_DE'), PHP_EOL;

        $enUsPg = new \IntlDatePatternGenerator('en_US');
        $pattern = $enUsPg->getBestPattern($datePattern);
        echo 'en_US: ', \IntlDateFormatter::formatObject($today, $pattern, 'en_US');

        // That's it! 😁
    }
}

 Exécuter le snippet  Plus sur Stackoverflow  Plus sur le web  Snippet aléatoire

  Travaillez avec moi !