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()andを使用しますstrftime()

于 2012-11-20T14:39:31.033 に答える