5

有以下几行(月份是俄语):

"Ноябрь 20 2012"
"Декабрь 19 2012"
"Сентябрь 12 2012"
"Июнь 5 2012"
"Август 2 2012"

我想将它们转换为以下格式:

11.20.2012
12.19.2012
09.12.2012
06.05.2012
08.02.2012

当然,问题是月份是俄语,所以我尝试过的方法不起作用。

$date = "Ноябрь 20 2012";
print_r(date_parse_from_format("F j Y", $date));

如何解析带有俄罗斯月份的日期?

4

3 回答 3

10

您可以执行以下解决方法:

$ru_month = array( 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь' );
$en_month = array( 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' );

print_r(date_parse_from_format("F j Y", str_replace($ru_month, $en_month, $date)));

PS:正如其他人所说,有一种直接的方法,这是您问题的副本

于 2012-11-20T14:41:54.060 回答
3

首先告诉 php 使用您的语言环境设置,

setlocale( LC_TIME, 'ru_RU', 'russian' );

然后尝试解析字符串。

$date = "Ноябрь 20 2012";
print_r( date_parse_from_format("F j Y", $date) );
于 2012-11-20T14:46:14.223 回答
1

用于setlocale()strftime()英语日期

于 2012-11-20T14:39:31.033 回答