4

重複の可能性:
日付形式を取得する PHP 関数?

例えば:

$date = date_parse('2010-09-17 14:00:00');

私を取得します:

year    =>  2010
month   =>  9
day     =>  17
hour    =>  14
minute  =>  0
second  =>  0

これは、PHP が文字列をどのように解釈したかに応じて、次の形式に対応します。

Y-m-d H:i:s

日付文字列が与えられた場合、 date_parse / strtotime で理解されるように、どのようにフォーマット文字列を取得できますか?

4

1 に答える 1

4

次のように使用します。

date("Y-m-d H:i:s", strtotime('2010-09-17 14:00:00'));

推測日付形式:

私はStackOverflowの答えを見ました:

いいえ、日付形式を推測する機能はありません。可能なすべてのバリエーションを表現する一連の正規表現の一致を記述する必要があります。

$variations = array (
    '^([0-9]{4})/[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{4}2$' => 'Y/m/d H:i:s',
    // more here
);

foreach ($dateFromDatabase as $date) {
    foreach ($variations as $regexp => $dateFormat) {
        if (preg_match ('|' . $regexp . '|', $date)) {
            $matches[$dateFromDatabase] = $dateFormat;
            break;
        }
    }
}

// $matches now consists of an array of dates => format
于 2012-12-31T03:02:40.087 に答える