Ste*_*ven 4 php time datetime locale date
我正在使用以下函数来检索日期和时间:
function formatEventTime($time, $type, $locale = 'nb_NO') {
setlocale(LC_TIME, $locale);
switch($type) {
case 'date' : $format = '%d.%m'; break;
case 'dm' : $format = '%d. %B'; break;
case 'time' : $format = '%H:%M'; break;
case 'dmy' : $format = '%d.%m.%Y'; break;
}
return strftime($format, strtotime($time));
}
Run Code Online (Sandbox Code Playgroud)
哇$time = 2010-12-03 10:00:00.问题是我的日子和月份仍然是英文.我如何将其更改为例如挪威语?
更新
这适用于我的服务器,但不适用于我的语言环境机器.
例:
<?php
$df = new IntlDateFormatter('nb_NO',
IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'Europe/Oslo');
echo $df->format(time());
Run Code Online (Sandbox Code Playgroud)
得到:
torsdag 16. september 2010 kl. 21.23.03 Norge
你必须使用strftime()而不是date().
如果没有给出时间戳,则返回使用给定时间戳或当前本地时间格式化的字符串.月份和工作日名称以及其他依赖于语言的字符串遵循使用setlocale()设置的当前语言环境.
小智 5
我知道这个话题很老但我今天遇到了同样的问题.日期在我的linux机器上正确显示,但在我的Windows机器上它们仍然是英文版.
如果你想在linux和windows机器上运行它,你必须小心使用setlocale()函数.在linux上你必须使用'nb_NO'(例如)用于挪威格式,在Windows上你必须使用'norwegian':
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
setlocale(LC_ALL, 'norwegian');
} else {
setlocale(LC_ALL, 'nb_NO');
}
Run Code Online (Sandbox Code Playgroud)
您可以在MSDN中找到Windows的语言代码列表.
| 归档时间: |
|
| 查看次数: |
9660 次 |
| 最近记录: |