我正在编写一个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
.
最合适的回答,由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..)