2013-08-29 22 views
2

我试图用一种不同于英语的语言在php中获取一天的名称。我将区域设置更改为setlocale(LC_ALL, 'nl_NL');(返回true),但日期仍以英文显示。后来我发现,你应该使用strftime()它的工作,但只是返回所设置的语言当前时间,和我想要循环通过一些预先定义的日子,所以输出将这是不是今天的另一种语言在php的日期/月份的名称

Vrijdag 30奥古斯

Zaterdag 31个奥古斯

Zondag 9月1日

从当前时间戳中减去/添加天数也不是我想要的选项。

+1

小心LC_ALL',有'LC_TIME',这是你真正需要的。这,和[这个问题已被问]之前(http://stackoverflow.com/questions/8744952/php-how-to-format-a-given-datetime-object-considering-localegetdefault) –

+0

尝试像'setlocale( LC_ALL,'荷兰人');'它适用于我。但'nl_NL'不起作用 – Bora

回答

2

每当你需要根据区域来操纵日期/时间邮票,你应该使用的strftime

该编码也改为UTF-8

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

例如:

<?php 
header('Content-Type: text/html; charset=UTF-8'); 

$myDate = "Feb 21, 2013"; 

$locale = 'fr_FR.utf8'; 
setlocale(LC_ALL, $locale); 
echo strftime('%d %B %Y', strtotime($myDate)); 

$locale = 'en_US.utf8'; 
setlocale(LC_ALL, $locale); 
echo strftime('%d %B %Y', strtotime($myDate)); 
?> 
相关问题