4

今日、StackOverflow でこの質問に遭遇しましたが、回答がありませんでした。

私の質問は

echo date('Y-m-d',strtotime('2012-september-09')); // output - 2012-09-01

echo date('Y-m-d',strtotime('09-september-2012')); // output - 2012-09-09

コードパッド

最初の形式で正しい答えが得られない理由がわかりません。ヘルプはありますか?

4

3 に答える 3

6

マニュアルから:

区切り文字がスラッシュ (/) の場合、アメリカの m/d/y が想定されます。一方、セパレータがダッシュ (-) またはドット (.) の場合は、ヨーロッパの dmy 形式が想定されます。

于 2012-09-05T10:08:23.877 に答える
4

これはdate関数の動作ではなく、 の動作ですstrtotimeDate Formatsマニュアルページstrtotimeにリストされている特定の形式の日付のみを処理できます。そこにリストされている形式ですが、サポートされている形式のいずれとも一致しません。09-september-2012dd ([ \t.-])* m ([ \t.-])* y2012-september-09

于 2012-09-05T10:10:05.367 に答える
1

あなたのコードでは、

echo date('Y-m-d',strtotime('2012-september-09'));

strtotime('2012-september-09')は日付関数の有効な形式('2012-september-09')ではありません。strtotime()

このリンクを参照してくださいhttp://www.php.net/manual/en/datetime.formats.date.php

于 2012-09-05T10:14:13.480 に答える