我正在处理如下所示的 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
行 在网页上返回以下日期:
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
问题陈述:
我想知道我应该在 上方的 行 A 处的 php 代码中进行哪些更改,以便当 页面使用法语 时,它应该以法语返回日期。
这就是 我已经尝试过 但它仍然是 返回英文 日期。
<?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 } ?>
上面的 B 行 仍然返回英文。
最佳答案
假设您网站的基本语言是法语,您可以像这样使用内置的 WordPress 功能 date_i18n()
:
echo date_i18n( 'F j H:i', $ts ); //Assuming $ts is your time stamp
如果
$ts
实际上是一个日期对象,则必须先像这样获取时间戳:echo date_i18n( 'F j H:i', $ts->getTimeStamp() ); //Assuming $ts is a dateTime object
如果您正在为时区差异而苦苦挣扎(即返回的时间提前/落后几个小时),那么您需要像这样将该函数与
get_date_from_gmt
结合起来:$correct_date = get_date_from_gmt(date_format($ts, 'Y-m-d H:i:s')); //gets the date in your current timezone
echo date_i18n( 'F j H:i', strtotime($correct_date) );
关于php - 在php中用法语显示月份名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56985891/