gpt4 book ai didi

php - 在 PHP 中解析本地化的日期字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:57 24 4
gpt4 key购买 nike

我有一些代码(它是 wordpress 插件的一部分)接受一个文本字符串,以及给 date() 的格式说明符,并尝试将其解析为一个包含小时、分钟、秒、日、月的数组,年。

目前,我使用以下代码(注意 strtotime 对于 01/02/03 之类的东西非常不可靠)

// $format contains the string originally given to date(), and $content is the rendered string
if (function_exists('date_parse_from_format')) {
$content_parsed = date_parse_from_format($format, $content);
} else {
$content = preg_replace("([0-9]st|nd|rd|th)","\\1",$content);
$content_parsed = strptime($content, dateFormatToStrftime($format));
$content_parsed['hour']=$content_parsed['tm_hour'];
$content_parsed['minute']=$content_parsed['tm_min'];
$content_parsed['day']=$content_parsed['tm_mday'];
$content_parsed['month']=$content_parsed['tm_mon'] + 1;
$content_parsed['year']=$content_parsed['tm_year'] + 1900;
}

这实际上工作得很好,似乎可以处理我提出的所有组合。

然而,最近有人给了我 24 Ноябрь, 2010。这是 2010 年 11 月 24 日的俄语 [日期格式为 j F, Y],它被解析为年 = 2010,月 = null,日 = 24。

是否有任何我可以使用的函数知道如何将 November 和 Ноябрь 翻译成 11?

编辑:

运行 print_r(setlocale(LC_ALL, 0)); 返回 C。切换回 strptime() 似乎可以解决问题,但文档警告:

Internally, this function calls the strptime() function provided by the system's C library. This function can exhibit noticeably different behaviour across different operating systems. The use of date_parse_from_format(), which does not suffer from these issues, is recommended on PHP 5.3.0 and later.

date_parse_from_format() 是正确的 API 吗?如果是,我如何让它识别语言?

最佳答案

尝试将语言环境设置为俄语 as hinted in the manual :

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

关于php - 在 PHP 中解析本地化的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4655305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com