0

可能重复:
意大利语的 PHP 日期函数输出

我尝试强制本地更改并以法语获取日期输出的值...这不起作用:这是代码

setlocale(LC_ALL, 'ca_FR');
echo date("l, F d, Y");

这是服务器设置:PHP 版本 >= 5.2(5.2.16+ 最好)5.2.17 和操作系统:Linux

我需要将法语日期输出为:mercredi .....

4

3 回答 3

6

手册

要格式化其他语言的日期,您应该使用 setlocale() 和 strftime() 函数而不是 date()。

所以使用:

setlocale(LC_ALL, 'ca_FR');
echo strftime("%A, %e %B, %G");

注意:所选语言环境也必须安装在服务器上,因此请检查是否ca_FR已安装语言环境。很多 linux 系统都有fr_FRfr_FR.utf8作为法语语言环境

于 2012-10-03T20:39:27.193 回答
1

尝试使用strftime()而不是date()strftime 文档

于 2012-10-03T20:36:41.847 回答
1

这是最终的工作代码

//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 ;

   } 
于 2012-10-03T21:04:44.867 回答