私はこれに関する情報を見つけることができないようです..
SQL DATE フィールドに正しくインポートされるように、文字列を日付に変換する必要があります。12/25/2012
DBにインポートすると、 のように表示され0000-00-00
ます。
これを行う適切な方法は何ですか?
リンクと参考文献は大歓迎です。
MySQL は、この形式の日付を受け入れYYYY-MM-DD
ます。日付形式12/25/2012
を2012-12-25
変更するか、正しい形式に一致するように変更します。
編集 独自の形式を引き続き使用したい場合は、これを試してください
list($d,$m,$y) = explode("/", "12/25/2012"); //replace 12/25/2012 with your date
$hyphenDate = $y . '-' . $m . '-' . $d;
echo $hyphenDate;
@Raviが彼の回答で指摘したように、MySQL は形式の日付を受け入れますYYYY-MM-DD
。11.1.5より引用。日付と時刻のタイプ1 :
MySQL はいくつかの形式で値を解釈しようとしますが、日付部分は常に年月日の順序で指定する必要があります
このために、2つの関数を使用してフォーマットできます。str_todate()
str_to_date('12/25/2012', '%m/%d/%Y);
このようにして、これらの入力文字列はデータベースに日付オブジェクトとして (特定の日付形式なしで) 保存されます。後で、これらの日付を特定の形式で出力したい場合は、3を使用して形式を設定できます。何かのようなもの:DATE_FORMAT
SELECT DATE_FORMAT(datefield, '%Y-%m-%d') FROM Test;
--2012-12-25
1, 2, 3:あなたが求めたリンクと参照。
クラスDateTimeを使用します。例:
$SomeDate = new DateTime();
echo $SomeDate->format( 'Y-m-d H:i:s' ); //Must be MySQL compatible (YYYY-MM-DD)
$ThisDate = new DateTime( date( 'Y-m-d H:i:s' ) );
echo $ThisDate->format( 'Y-m-d H:i:s' ); //Must be MySQL compatible (YYYY-MM-DD)