我正在编写如下所示的 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
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 上面仍然返回英文。
最佳答案
你应该使用 intl扩展名:
$ts = new DateTime();
$formatter = new IntlDateFormatter('fr_FR', IntlDateFormatter::LONG, IntlDateFormatter::LONG);
$formatter->setPattern('MMMM d HH:mm');
echo $formatter->format($ts);
列出了 setPattern 的可分配格式 here
关于php - 在 php 中以法语显示月份名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56985891/