php - 将英语日期转换为法语
问题描述
我$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');
但是日期仍然是英文的!
在此先感谢您的帮助
解决方案
基于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)仍然存在。此方法像往常一样以英语提供结果。
推荐阅读
- c++ - 在 C++ 类上调用 void 函数
- node.js - 在dynamodb中获取单个alexa响应的时间戳
- python - 尝试在 while 循环中重新定义变量时,NoneType 对象不可调用
- javascript - 如何在回调方法中保留“this”?
- python - SQLAlchemy 子查询获取 AttributeError:“查询”对象没有属性“is_clause_element”
- docker - -v 从 docker 容器中删除所有数据
- c# - 从外部类传递双重形式
- python - 图断开连接 - keras
- java - 求解三次公式 Java
- mysql - mysql用if语句替换成