我正在研究以下php / javascript代码,该代码以法语返回月份名称,但与我们使用的法语单词不匹配。
<script>
document.getElementById('title_fr').value = "<?php setlocale(LC_TIME, "frc"); echo strftime("%d %b %Y", strtotime( $this_date )); ?>";
</script>
上面的脚本以法语返回月份名称,该月份名称与我们用法语设置的月份名称不匹配。
mars
avr.
mai
juin
juil.
août
sept.
oct.
nov.
déc.
以下是我们遵循的法语月份名称集:
janvier
février
mars
avril
mai
juin
juillet
août
septembre
octobre
novembre
décembre
问题陈述:
我想知道我需要在上面的脚本中进行哪些更改,以使其恢复以法语显示的月份名称。
我相信我需要创建一个如下所示的数组,并用法语显示月份名称。
const monthNamesFr = ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"];
答案 0 :(得分:1)
因为这似乎可以解决问题(来自评论部分)。无需将日期硬编码在数组中,只需从strftime()
函数请求一个月即可:
setlocale(LC_TIME, "frc"); echo strftime("%d %B %Y", strtotime( $this_date ));
答案 1 :(得分:1)
我建议在法国使用有效的语言环境,例如fr_FR
作为法语。此外,对于strftime()
documentation,请使用%B
作为完整月份的名称。
$this_date = '2018-04-03 12:12:12';
setlocale(LC_TIME, "fr_FR");
echo strftime('%d %B %Y', strtotime($this_date)); // 03 avril 2019
无论系统配置的语言环境如何,此方法均有效。