首页 > 解决方案 > 将英语日期转换为法语

问题描述

$date从 UTC 格式的 API 中得到一个2021-11-13T14:00:14Z.

因此,我使用 php 将其转换为:2021 年 11 月 13 日

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

所以现在我想把它翻译成法语。

我正在使用 MAMP 在 macbook pro 上进行本地工作。

我的 html 代码设置是:

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

我什至强迫当地时间:

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

但是日期仍然是英文的!

在此先感谢您的帮助

标签: phpdatedatetimelocaltime

解决方案


基于IntlDateFormatter 类的解决方案独立于服务器的本地安装工作。已在此处的评论中编写的示例。当使用使用 IntlDateFormatter 类的类dt时,可以对方法 formatL 使用与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

日期字符串包含对应于 UTC 的“Z”时区。可以使用 setTimeZone() 设置新时区以获取本地时间。如果要显示 UTC 时间(此处为 14:00),则必须省略此行。格式方法(没有L)仍然存在。此方法像往常一样以英语提供结果。


推荐阅读