在 php 中更改日期的语言

新手上路,请多包涵

我有这个 MySQL 查询,它返回两个日期(都被格式化为 amY)。现在我想将这个日期翻译成我自己的语言(丹麦语)。我怎样才能做到这一点。我已经尝试了 setlocale() 和 strftime() 函数,但它不起作用。我知道这是一个非常基本的问题,但我真的需要帮助 :) 非常感谢!

原文由 Emil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 272
1 个回答

我发现 setlocale 不可靠,因为它是按进程设置的,而不是按线程设置的(手册中提到了这一点)。这意味着其他正在运行的脚本可以随时更改语言环境。一种解决方案是使用 --- intl php 扩展中的 IntlDateFormatter。

  • 安装 intl 如果需要(ubuntu): sudo apt-get install php5-intl

  • 安装您要使用的语言环境(我以意大利语为例): sudo locale-gen it_IT

  • 生成本地格式的日期:

 $fmt = new \IntlDateFormatter('it_IT', NULL, NULL);
$fmt->setPattern('d MMMM yyyy HH:mm');
// See: https://unicode-org.github.io/icu/userguide/format_parse/datetime/#datetime-format-syntax for pattern syntax
echo $fmt->format(new \DateTime());
// Output: 6 gennaio 2016 12:10

原文由 Simon Epskamp 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏