PHP MySQL の日付形式の問題
指定された形式 (例: "08/25/2012") で jQuery 日付ピッカーを使用する場合、選択した日付を日付値として MySQL データベースに挿入すると、エラーが発生し、デフォルト値が表示される場合があります。代わりに「0000-00-00 00:00:00」です。
理由:
MySQL のドキュメントによると、MySQL は 'YYYY などの特定の形式の日付値を認識します。 -MM-DD」または「YY-MM-DD」。 jQuery の日付ピッカーで使用される形式 ('08/25/2012') は、MySQL によって直接認識されません。
解決策:
これを解決するには、いくつかの方法があります。問題:
1. AltField を使用して形式を変換します:
「altField」および「altFormat」オプションを使用して、サポートされている形式で日付を提供するように日付ピッカーを構成します。これにより、目的の形式で日付を含む隠しフィールドが作成されます。
2. MySQL の STR_TO_DATE() 関数を使用します:
この関数は、受信した文字列を有効な MySQL 日付値に変換できます。次のように使用します:
INSERT INTO user_date VALUES('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
3.日付を PHP DateTime オブジェクトに変換:
PHP の DateTime オブジェクトを使用して、受信した文字列を PHP が理解できる日付形式に変換します。
$dt = \DateTime::createFromFormat('m/d/Y', $_POST['date']);
4.文字列を手動で操作:
上記のオプションがどれも機能しない場合は、受信した文字列を手動で操作して有効な MySQL 日付リテラルにすることができます。
$parts = explode('/', $_POST['date']); $date = "$parts[2]-$parts[0]-$parts[1]";
注意:
以上がjQuery Datepicker 使用時の PHP と MySQL の日付形式の非互換性を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。