〇〇〇〇年〇月〇日の日付部分を抜き出しSQLにDATE型引数として渡す方法

投稿日:

ドツボにはまって解決まで時間がかかってしまったのでメモ。

2016年11月24日という文字列から日付の部分を抜き出しデータベースにDATE型として格納する方法です。

ぱっと思いついたのが年、月、日をstr_replace()を使って消して変数にして渡す方法です。

$date = “2016年11月24日”;

$date = str_replace("年","",$date);

$date = str_replace("月","",$date);

$date = str_replace("日","",$date);

ブラウザ上はうまくいくのですが、データベースに渡すとこれだとうまくいかず、数値に変換しても0になってしまいました。

(数字以外の余計な見えない何かが残ってしまっている)

色々試した結果以下の方法で文字を置換することで解決しました。

$datenew = mb_ereg_replace(‘[^0-9]’, ”, $datenew);

mb_ereg_replaceマルチバイト文字列に正規表現による置換を行う

0~9の数字以外をすべて削除するのでうまくいったと思われる。