如何在php中用法语对月份名称进行硬编码?

时间:2019-03-14 14:36:19

标签: php strftime monthcalendar setlocale

我正在研究以下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"];

2 个答案:

答案 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

无论系统配置的语言环境如何,此方法均有效。