Persekitaran:
CentOS 7.3.1611
PHP 7.1.3
Kod:
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;
Keluaran:
zh_CN.UTF-8
2017-May-22 Monday
Ujian tambahan, dalam 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
Soalan:
Adalah mungkin untuk menyetempatkan output tarikh dalam Bash.
Mengapa tidak sah untuk menggunakan fungsi setlocale() dalam PHP?
Sila minta nasihat pakar.
Kedua-dua jawapan di atas tidak tepat.
setlocale
setlocale
strftime
strftime
- Format masa/tarikh tempatan mengikut tempatDua fungsi ini mesti digunakan bersama untuk melihat kesannya.
Walau bagaimanapun, walaupun begitu, prestasi masih berbeza daripada semasa anda memanggil sistem bash secara terus, dan mungkin tidak semestinya memenuhi jangkaan anda.
Arahan tarikh dalam bash memanggil aplikasi tarikh dalam linux untuk merealisasikan paparan dan output fungsi tarikh
php ialah objek tarikh dan fungsi yang dilaksanakan dengan sendirinya
Agak difahami bahawa fungsi kedua-duanya adalah berbeza!
Ini adalah dua bahasa dengan kaedah dan mekanisme yang berbeza Jika anda menggunakan kaedah
.php
里面想得到中文这种格式,完全可以在php
中通过exec
调用shell
: