Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用本地格式的strftime()月-日-年或日-月-年_Php - Fatal编程技术网

Php 使用本地格式的strftime()月-日-年或日-月-年

Php 使用本地格式的strftime()月-日-年或日-月-年,php,Php,我使用的是setlocale(LC_TIME,“de_de”)设置本地时间,我的html中有 setlocale(LC_TIME, "de_DE"); <?php echo strftime("%x"); ?> setlocale(LC_TIME,“de_de”); 在%x的PHP手册中,它说了基于区域设置的首选日期表示,没有时间示例:2009年2月5日的02/05/09,但使用该示例,它将更改为05/02/09 如何将格式保持为2009年2月5日,如果是一个日期最先出现的国家,

我使用的是
setlocale(LC_TIME,“de_de”)
设置本地时间,我的html中有

setlocale(LC_TIME, "de_DE");
<?php echo strftime("%x"); ?>
setlocale(LC_TIME,“de_de”);
%x
的PHP手册中,它说了
基于区域设置的首选日期表示,没有时间
示例:2009年2月5日的02/05/09
,但使用该示例,它将更改为05/02/09


如何将格式保持为2009年2月5日,如果是一个日期最先出现的国家,则显示2009年2月5日,而不是将其切换为2009年2月5日,一种方法是在打印输出中月份最先出现的地方创建一个区域设置值数组,然后在打印之前检查区域设置值是否在该数组中

例如:

$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");
}