Zam*_*bon 1 php time multilingual date
strftime()所以,我在被弃用之前使用过这段代码:
setlocale(LC_TIME, IT);
echo "<p>" . strftime("%A %e %h %Y", strtotime($value)) . "</p>";
现在,使用date()相同的代码,输出不会改变语言。
setlocale(LC_TIME, 'it_IT.utf8');
echo "<p>" . date("l d M Y", strtotime($value)) . "</p>";
**忽略变量$value
我没有看到setlocale(LC_TIME, 'IT')两者setlocale(LC_TIME, 'it_IT.utf8')之间的差异date()...但strftime()仅适用于setlocale(LC_TIME, 'IT')而不是第二个
有任何想法吗?
date()接受的函数使用格式DateTimeInterface::format()。
该方法DateTimeInterface::format()不使用区域设置。所有输出均为英文。
\n所以,这意味着date()函数也不使用语言环境。
测试:
\nsetlocale(LC_ALL, \'IT.utf8\');\necho date(\'l\', time()).\'<br>\';// display Friday\n\nsetlocale(LC_ALL, \'fr\');\necho date(\'l\', time()).\'<br>\';// display Friday\n\nsetlocale(LC_ALL, \'th\');\necho date(\'l\', time()).\'<br>\';// display Friday\nRun Code Online (Sandbox Code Playgroud)\n所有区域设置都显示相同的内容:星期五。
\nstrftime()已弃用。用区域设置(可能包括时区)来替代显示日期/时间的是什么?
\n的IntlDateFormatter是最好的选择。
从你之前的代码来看:
\nsetlocale(LC_TIME, \'IT.utf8\');\necho "<p>" . strftime("%A %e %h %Y", time()) . "</p>";// display venerd\xc3\xac 15 apr 2022\nRun Code Online (Sandbox Code Playgroud)\n您现在可以使用:
\n$fmt = new IntlDateFormatter(\'IT\',\n IntlDateFormatter::FULL, \n IntlDateFormatter::FULL\n);\n$fmt->setPattern(\'EEEE d LLL yyyy\');\necho $fmt->format(time());// display venerd\xc3\xac 15 apr 2022\nRun Code Online (Sandbox Code Playgroud)\n格式将是 usesetPattern()方法,可能的模式记录在https://unicode-org.github.io/icu/userguide/format_parse/datetime/。
| 归档时间: |
|
| 查看次数: |
2844 次 |
| 最近记录: |