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

マニュアルから:

他の言語で日付をフォーマットするには、date() の代わりに setlocale() および strftime() 関数を使用する必要があります。

だから使用:

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

: 選択したロケールもサーバーにインストールする必要があるため、 がインストールされてca_FRいるロケールかどうかを確認してください。多くの Linux システムでは、フランス語のロケールとしてfr_FRorが使用されています。fr_FR.utf8

于 2012-10-03T20:39:27.193 に答える
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 に答える
1

strftime()代わりに使用してみてくださいdate(): strftime ドキュメント

于 2012-10-03T20:36:41.847 に答える