date()/ strftime()语言的setlocale()语言完整月份名称错误行为

时间:2018-07-11 21:11:35

标签: php

在尝试使用其他语言时,应使用PHP文档的this部分的strftime()函数

  

要使用其他语言设置日期格式,应使用setlocale()和   strftime()函数代替date()。

在将setlocale()与以下参数一起使用时

  setlocale(LC_ALL, "es_ES", 'Spanish_Spain', 'Spanish');

strftime()

  $mes = strftime('%B', strtotime($semana->semana . "+{$diaPos} days"));

以英语返回月份。

我可以采用的一种解决方案是分配一个常量变量,该变量指向翻译与该函数给定的月份之间的关系,因此我将能够返回正确的名称。

但这对我来说似乎不是很优雅。

我正在基于debian的发行版上使用PHP7。

1 个答案:

答案 0 :(得分:0)

要使用语言环境,您需要在系统中生成它。在debian上,您应该以root身份运行:

dpkg-reconfigure locales

然后您的脚本应该起作用。