在WordPress/php中用法语显示月份?

时间:2019-07-17 作者:user5447339

我正在编写一个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 
Line A 返回以下日期(英文):

July 10 21:30
print_r($ts) 打印:

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

Problem Statement:

我想知道我应该在上面的php代码中做些什么更改Line A 这样,当页面为法语时,它应该返回DATE IN FRENCH.

这是我尝试过的,但它仍在返回英语中的日期。

<?php if(ICL_LANGUAGE_CODE==\'fr\'){   /* If the page is in french */
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 } ?>
Line B 仍然返回english 即使使用后strftime.

1 个回复
最合适的回答,由SO网友:honk31 整理而成

wordpress中有一个名为date_i18n. 所以基本上是这样的

echo date_i18n( \'H:i d-m-Y\', $ts );
没有setLocale的东西。。

查找函数date\\u i18n及其参数here.

您甚至可以在那里构建您的翻译,而无需事先进行语言检查:

date_i18n( __( \'H:i d-m-Y\', \'textdomain\' ) );
(将“textdomain”替换为主题textdomain..)