Heim  >  Fragen und Antworten  >  Hauptteil

Ist die Funktion setlocale() in PHP für Chinesisch ungültig?

Umgebung:
CentOS 7.3.1611
PHP 7.1.3

Code:

echo setlocale(LC_ALL, array('zh_CN.UTF-8', 'zh_CN.utf8', 'zh_CN')), PHP_EOL;
$date = new DateTime();
echo $date->format('Y-F-d l'), PHP_EOL;

Ausgabe:

zh_CN.UTF-8
2017-May-22 Monday

Zusätzlicher Test, in Shell:

# export LC_ALL=zh_CN.UTF_8
# date
2017年 05月 22日 星期一 19:02:15 CST
# export LC_ALL=en_US.UTF_8
# date
Mon May 22 19:02:34 CST 2017

Frage:
Es ist möglich, die Datumsausgabe in Bash zu lokalisieren.
Warum ist es ungültig, die Funktion setlocale() in PHP zu verwenden?

Bitte fragen Sie Experten um Rat.

怪我咯怪我咯2680 Tage vor864

Antworte allen(3)Ich werde antworten

  • 大家讲道理

    大家讲道理2017-05-24 11:35:31

    以上两个答案都没说到点上。
    setlocale
    strftime - 根据区域设置格式化本地时间/日期

    这两个函数要配合使用,你才能看到效果。

    不过,不过,即使这样,跟你直接调用系统 bash 的表现还是有差异,不一定符合你预期。

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-24 11:35:31

    bash中的date命令调用的是linux中的一个date应用程序来实现的日期功能的显示及输出的

    php是自己实现的日期对象及函数

    两者功能不一样是十分可以理解的啊!

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-05-24 11:35:31

    这是两种语言,方法机制不一样,如果你在php里面想得到中文这种格式,完全可以在php中通过exec调用shell的方法:

    $cmd = "export LC_ALL=zh_CN.UTF_8 && date";
    $date = exec($cmd);

    Antwort
    0
  • StornierenAntwort