Ubuntu重新启动后用英语显示一个月



我有一个通常以法语显示任何日期的月份的Web应用程序。

即使我重新启动NGINX服务器和PHP-FPM服务器时,日期将以法语显示正常。

,但今天我重新启动了Ubuntu 12机器,现在在Web应用程序的所有日期的一个月中都显示在英语Jun 2, 2017 5:11:27 PM02/06/2017 17:03

如果我在外壳中输入 date命令,我会以法语获得日期,尽管 vendredi 2 juin 2017, 23:47:59 (UTC+0200)

这是有关已安装的地区的更多信息:

/var/www$ sudo locale -a
C
C.UTF-8
en_US.utf8
fr_BE.utf8
fr_CA.utf8
fr_CH.utf8
fr_FR.utf8
fr_LU.utf8
POSIX
ocatelin@sd-53310:/var/www$ sudo locale 
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC=fr_FR.UTF-8
LC_TIME=fr_FR.UTF-8
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY=fr_FR.UTF-8
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER=fr_FR.UTF-8
LC_NAME=fr_FR.UTF-8
LC_ADDRESS=fr_FR.UTF-8
LC_TELEPHONE=fr_FR.UTF-8
LC_MEASUREMENT=fr_FR.UTF-8
LC_IDENTIFICATION=fr_FR.UTF-8
LC_ALL=
sudo locale-gen fr_FR.UTF-8
Generating locales...
  fr_FR.UTF-8... up-to-date
Generation complete.
sudo update-locale

我也重新启动了nginx,但没有帮助。

这是phpinfo((调用的一些输出:

iconv.input_encoding    ISO-8859-1  ISO-8859-1
iconv.internal_encoding ISO-8859-1  ISO-8859-1
iconv.output_encoding   ISO-8859-1  ISO-8859-1
version 1.1.0
ICU version
intl.default_locale no value    no value

日期6/3/17 4:47 PM的示例(应切换到3/6/17(和她的PHP代码:

$date = DateTime::createFromFormat('Y-m-d H:i:s', $action['date_reminder']);
$this->dateFormat($date, IntlDateFormatter::SHORT, IntlDateFormatter::SHORT)

IntlDateFormatter来自Start of intl v.PECL-3.0.0

提醒:此问题仅在机器重新启动后才出现。

使用setlocale https://secure.php.net/manual/manual/en/en/en/en/en/en/en/en/en/en/en/en/en/en/manual/en/net.php

尝试

setlocale(LC_ALL, 'fr_FR');

http://php.net/manual/en/function.setlocale.php

最新更新