Traduire le jour et le mois d'une date avec PHP

Publié le 12/04/2022 • Mis à jour le 12/04/2022


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 traduire le jour et le mois d'une date avec PHP. On utilise l'extension intl et sa classe IntlDateFormatter. Dans le premier exemple, on utilise un motif personnalisé, et dans le second, on utilise des constantes prédéfinies. Cliquez sur le bouton "plus sur le web" pour voir la table de tous les motifs disponibles. Cliquez ici pour voir la sortie du même snippet avec la langue anglaise 🇬🇧.


<?php

declare(strict_types=1);

namespace App\Controller\Snippet;

use Symfony\Component\HttpFoundation\Request;

/**
 * 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 Snippet197Trait
{
    public function snippet197(Request $request): void
    {
        echo 'Locale : '.$request->getLocale().PHP_EOL;
        echo 'Timezone : '.date_default_timezone_get().PHP_EOL;
        $dateTime = new \DateTime();

        $pattern = 'EEEE (d) MMMM yyyy';
        $fmt = new \IntlDateFormatter($request->getLocale(), 0, 0, null, null, $pattern);
        echo $fmt->format($dateTime).PHP_EOL;

        $fmt = new \IntlDateFormatter(
            locale: $request->getLocale(),
            dateType: \IntlDateFormatter::FULL,
            timeType: \IntlDateFormatter::FULL
            // we don't use a custom pattern here
        );
        echo $fmt->format($dateTime);

        // That's it! 😁
    }
}

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