在php中用法语显示月份名称?

fla*_*ash 3 php wordpress locale date french

我正在编写一个 php 代码,如下所示:

<?php <time datetime="<?php  echo esc_attr(date_format($ts, 'H:i d-m-Y'))  ?>"
data-timezone="<?php  echo esc_attr($tz_param)  ?>"><?php echo esc_html(date_format($ts, 'F j  H:i')) ?></time> ?> // Line A 
Run Code Online (Sandbox Code Playgroud)

A 行返回网页上的以下日期:

July 10 21:30
Run Code Online (Sandbox Code Playgroud)

print_r($ts)印刷:

DateTime Object
(
    [date] => 2019-07-10 21:30:00.000000
    [timezone_type] => 3
    [timezone] => America/New_York
)
July 10  21:30
Run Code Online (Sandbox Code Playgroud)

问题陈述:

我想知道我应该在上面 A 行的php 代码中进行哪些更改,以便当页面为 french时,它应该返回法语日期。

这是我尝试过的,但它仍然以英语返回日期

<?php if(ICL_LANGUAGE_CODE=='fr'){
setlocale(LC_TIME, 'fr_FR');
?>
<time datetime="<?php echo esc_attr(date_format($ts, 'H:i d-m-Y')) ?>"
   data-timezone="<?php echo esc_attr($tz_param) ?>"><?php echo strftime(esc_html(date_format($ts, 'F j  H:i'))) ?></time> // Line B
<?php } ?>
Run Code Online (Sandbox Code Playgroud)

上面的B 行仍然返回英文。

ts.*_*ts. 5

您应该使用intl扩展:

$ts = new DateTime();
$formatter = new IntlDateFormatter('fr_FR', IntlDateFormatter::LONG, IntlDateFormatter::LONG);
$formatter->setPattern('MMMM d  HH:mm');

echo $formatter->format($ts);
Run Code Online (Sandbox Code Playgroud)

此处列出了 setPattern 的可弃格式