[PHP] 日付のフォーマットを便利に変更できる関数
先日仕事でPHPのコードを書いている時に、毎日処理をするバッチ処理のコードを書かなくてはいけなくなりました。
そこで問題発生。
他のプログラムとの連携で、バッチ処理に送られてくる日付と、データベースで使われている日付のフォーマットが違っていて、
さらに、その他のモジュールとのやりとりが、全てバラバラの日付フォーマットになっていました。
オーマイガ!
ということで、それらを柔軟にフォーマット変換できるように関数を作っておいたので、自分が後でコピペで使えるようにブログに残しておきますね。
ちなみに、送られてくる日付フォーマットは、"20230721"で、
データベースで使われているフォーマットは、"2023-07-21"で、
別のプログラム(表示形式)では、"2023/07/21"で使われていました。
他にも、"2023.07.21"という文字列も見え隠れしていたのを、僕は見逃していません。
ジーザス!
ソースコード
function date_format($date_str=null , $separator=''){
if(preg_match('/([0-9]{4}).*?([0-9]{2}).*?([0-9]{2})/' , $date_str , $match)){
return [
$match[1]. $separator .$match[2]. $separator .$match[3]
];
}
else{
return $date_str;
}
}