可能重复:
意大利语的 PHP 日期函数输出
我尝试强制本地更改并以法语获取日期输出的值...这不起作用:这是代码
setlocale(LC_ALL, 'ca_FR');
echo date("l, F d, Y");
这是服务器设置:PHP 版本 >= 5.2(5.2.16+ 最好)5.2.17 和操作系统:Linux
我需要将法语日期输出为:mercredi .....
可能重复:
意大利语的 PHP 日期函数输出
我尝试强制本地更改并以法语获取日期输出的值...这不起作用:这是代码
setlocale(LC_ALL, 'ca_FR');
echo date("l, F d, Y");
这是服务器设置:PHP 版本 >= 5.2(5.2.16+ 最好)5.2.17 和操作系统:Linux
我需要将法语日期输出为:mercredi .....
从手册:
要格式化其他语言的日期,您应该使用 setlocale() 和 strftime() 函数而不是 date()。
所以使用:
setlocale(LC_ALL, 'ca_FR');
echo strftime("%A, %e %B, %G");
注意:所选语言环境也必须安装在服务器上,因此请检查是否ca_FR
已安装语言环境。很多 linux 系统都有fr_FR
或fr_FR.utf8
作为法语语言环境
尝试使用strftime()
而不是date()
:strftime 文档
这是最终的工作代码
//Add a SHORTCODE to get date listing
add_shortcode ('getdate','get_date_listing');
function get_date_listing ($att) {
$outputtvar = '';
// set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('America/Montreal');
//ID of the post containing DATE LIST
$req_id = 901;
$post = get_page($req_id);
$content = apply_filters('the_content', $post->post_content);
// Strip all <p> tags
$content = str_replace( "<p>", "", $content );
// Replace </p> with a known delimiter
$content = str_replace( "</p>", "|", $content );
//Separate de dates
$contentarray = explode( '|', $content );
//remove the last empty date
unset($contentarray[count($contentarray)-1]);
if (qtrans_getLanguage() == 'fr') { setlocale(LC_ALL, 'fr_CA'); $datesetting = "%A, %e %B, %G"; }
if (qtrans_getLanguage() == 'en') { setlocale(LC_ALL, 'en_US'); $datesetting = "%A, %B %e, %G";}
//prepare the outputt
$outputtvar .= '<ul>';
foreach ($contentarray as $key => $value) {
$timestamp = strtotime($value);
$localdate = strftime($datesetting,$timestamp);
$localdate = utf8_encode($localdate);
$outputtvar .= '<li>' . $localdate . '</li>';
}
$outputtvar .= '</ul>';
return $outputtvar ;
}