PHP の日付を MySQL 形式に変換する
PHP では、コードで使用される形式の日付フィールドがよく見られます。
$date = mysql_real_escape_string($_POST['intake_date']);
ただし、MySQL を使用する場合、多くの場合、この日付を MySQL 形式に変換する必要があります。データベースに含める場合は「0000-00-00」。 date('Y-m-d' strtotime($date);) のいくつかのバリエーションが思い浮かぶかもしれませんが、この変換に含まれる特定の複雑な問題に対処することが重要です。
1. MySQL 列型の処理
MySQL 列が DATE 型で、時刻のない日付のみを示す場合、推奨される変換方法は次のとおりです。
$date = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
これはダッシュ " を置き換えます。 strtotime() 関数を適用する前に、日付文字列にスラッシュ「/」を付けて -" を追加します。それ以外の場合、strtotime() はダッシュで区切られた数値を減算しようとするため、不正確な結果が生じます。
2. DATETIME 型の変換
MySQL 列が日付コンポーネントと時刻コンポーネントの両方を含む DATETIME 型である場合は、代わりに次の変換を使用します。
$date = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $date)));
ここでは、次の変換を使用します。 「-」を「/」に置き換えるという同じ原則に基づいて、時間の追加の書式設定も含めます。コンポーネント。
3.複雑な形式に対する代替アプローチ
日付が strtotime() 関数と date() 関数の両方と互換性のない形式である場合 (「02/07/2009 00:07:00」など) 、正規表現ベースの変換を選択できます:
$date = '02/07/2009 00:07:00'; $date = preg_replace('#(\d{2})/(\d{2})/(\d{4})\s(.*)#', '-- ', $date);
この正規表現は日付コンポーネントを並べ替えます。必要な MySQL 形式に変換し、PHP の日付フィールドがデータベースに含められるように適切に変換されるようにします。
以上がPHP の日付を MySQL の DATE および DATETIME 形式に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。