我的小功能:
setlocale(LC_TIME, 'de_DE');
$date_array = array($blog_month,$blog_year);
var_dump($date_array);
$title_date = strftime("%B %Y", mktime(0,0,0, $date_array[0], 0, $date_array[1]));
echo $title_date;
var_dump给出
array(2) {
[0]=> int(5)
[1]=> int(2013)
}
所以数组是正确的。
但$title_date
总是错的。在这种特殊情况下,回声显示April 2013
。
我想mktime
出了点问题,因为我检查了它给出的timestamp
,它总是错误的。
我确实阅读过PHP文档,这应该是可行的,不知道什么是错的。 有什么想法或建议吗?
最好的问候 denym答案 0 :(得分:1)
如果无法设置区域设置,setlocale
函数将返回false
,并且您忽略了返回值。在这种情况下,调用必须失败(可能是因为未安装de_DE
语言环境?)并且strftime
仍然以英语格式化日期。
另一方面,第0天对应于“last day of the month before”。因此mktime
将于4月30日返回,而不是5月1日,如果这是您所期望的。 5月1日使用:
mktime(0,0,0, $date_array[0], 1, $date_array[1])