以本地格式使用strftime()月日年或日月

时间:2014-12-10 01:50:38

标签: php

我使用setlocale(LC_TIME, "de_DE");设置本地时间,我的html中有<?php echo strftime("%x"); ?>

setlocale(LC_TIME, "de_DE");
<?php echo strftime("%x"); ?>

%x的PHP手册中Preferred date representation based on locale, without the time Example: 02/05/09 for February 5, 2009,但使用该示例时,它将更改为05/02/09。

如何将格式保持为February 5, 2009,如果它是第一天的国家/地区,请显示5 February 2009,而不是将其切换为02/05/09

1 个答案:

答案 0 :(得分:1)

实现此目的的一种方法是创建一个区域设置值数组,其中月份在打印输出中排在第一位,然后在打印之前检查您的区域设置值是否在该数组中。

示例:

$month_first_locales = array("de_DE", "fr_CA"); //add locales where date is formatted like 5 February 2009
$locale = "de_DE";
setlocale(LC_TIME, $locale);
if(in_array($locale, $month_first_locales)){
    echo strftime("%d %B %Y");
}else{
    echo strftime("%B %d, %Y");
}