[PHP]年月日の文字が入った日付文字列を,YYYYMMDDに変換する(2012年1月31日 -> 20120131)

PHPで、例えば「2012年1月31日」といった、書式編集されている日付文字列を、
「20120131」のようなYYYYMMDD形式に変換します。。

function normalizeDate( $inStr ) {
    // 年月日の各パーツを分割する
    preg_match( "/([0-9]*)年([0-9]*)月([0-9]*)日/", $inStr, $data );
    if ( Count( $data ) != 4 ) {
        return $inStr;
    }
 
    // 先頭0埋めでYYYYMMDD形式の日付文字列に変換する
    $outStr = sprintf( "%04.4d%02.2d%02.2d", $data[1], $data[2], $data[3] );
 
    return $outStr;
}



preg_matchでは、正規表現を使用して、入力された文字列を年・月・日の各パーツに分離します。
その後c言語でも良く使われるsprintf()で再組み立てします。
入力文字の月日が1桁だった場合も0埋めする為に、”%02.2d”の形式で書式指定を行っています。

関連記事

コメントを残す

メールアドレスが公開されることはありません。