使用不同的语言?

2022-08-30 16:37:35

strtotime 是否只在服务器上使用默认语言?下面的代码应该解析到 2005 年 8 月 11 日,但它使用法语“aout”而不是英语“aug”。

有什么想法如何处理这个问题?

<?php
    $date = strtotime('11 aout 05');
    echo date('d M Y',$date);
?>

答案 1

如前所述,未考虑区域设置。但是,您可以使用(请参阅 http://ca1.php.net/manual/en/function.strptime.php),因为根据文档:strtotimestrptime

Month and weekday names and other language dependent strings respect the current locale set with setlocale() (LC_TIME).

请注意,根据您的系统、区域设置和编码,您必须考虑重音字符。


答案 2

法国月份日期为:

janvier février mars avril mai juin juillet août septembre octobre novembre décembre

因此,对于法语月份的非常具体的情况,您可以使用

function myStrtotime($date_string) { return strtotime(strtr(strtolower($date_string), array('janvier'=>'jan','février'=>'feb','mars'=>'march','avril'=>'apr','mai'=>'may','juin'=>'jun','juillet'=>'jul','août'=>'aug','septembre'=>'sep','octobre'=>'oct','novembre'=>'nov','décembre'=>'dec'))); }

如果您以英语传递$date_string,则该函数无论如何都不会中断,因为它不会执行任何替换。


推荐