简体   繁体   中英

Convert English date in French language

I get a $date from an API in UTC format like 2021-11-13T14:00:14Z .

So using php I convert it to : 13 November 2021

$date = strftime(date('d F Y', strtotime($date);

So now I want to translate it in French.

I am working on local with on macbook pro using MAMP.

My html code setting is :

<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

I even forced Local Time to :

setlocale(LC_TIME, 'fr', 'fr_FR', 'fr_FR@euro', 'fr_FR.utf8', 'fr-FR', 'fra'); date_default_timezone_set('Europe/Paris');

But the date remain in english !

Thanks in advance for your help

Solutions based on the IntlDateFormatter class work independently of the local installations of the server. Example as already written in the comment here . When using the class dt , which uses the IntlDateFormatter class, the same format characters can be used for the method formatL as for DateTime::format .

$dt = dt::create('2021-11-13T14:00:14Z');

//UTC -> localTime "2021-11-13 15:00:14"
$dt->setTimeZone('Europe/Paris');  

echo $dt->formatL('l d F Y H:i','fr');
// samedi 13 novembre 2021 15:00

echo $dt->formatL('l d F Y H:i','de');
// Samstag 13 November 2021 15:00

The date string contains the "Z" time zone, which corresponds to UTC. A new time zone can be set with setTimeZone() to get the local time. If the UTC time (here 14:00) is to be displayed, this line must be omitted. The format method (without L) still exists. This method delivers the result as usual in English.

You're not calling strftime() correctly. The first argument must be a format string. date() returns an already-formatted date, and it doesn't use locales. This works for me:

setlocale(LC_TIME, 'fr', 'fr_FR', 'fr_FR@euro', 'fr_FR.utf8', 'fr-FR', 'fra');
date_default_timezone_set('Europe/Paris');
$date = "2021-11-13T14:00:14Z";
echo strftime('%d %B %Y', strtotime($date));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM