2016-05-09 5 views
2

bootstrap 3フォームがあり、clockpickerdatepickerプラグインがあります。私はすべてのデータをPHPで取得し、MySQL(現在はXAMPP)に挿入しようとしています。時には、INSERTは大丈夫ですが、時々1または私は17/09/2016のような日付を表示するのでDB内Timestampフィールドの両方が0000 ....MySQLタイムスタンプは大丈夫ですが失敗することがあります

で残っているが、私は、MySQLで2016-17-09ようにそれを保存しようと、私は持っています

$startDate = $_POST['shiftStartDate'] . " " . $_POST['shiftStartTime']; 
$startDateFormat = str_replace('/', '-', $startDate); 
$date1 = date_create($startDateFormat); 
$dateTime1 = date_format($date1, 'Y-d-m H:i:s'); 



$endDate = $_POST['shiftEndDate'] . " " . $_POST['shiftEndTime']; 
$endDateFormat = str_replace('/', '-', $endDate); 
$date2 = date_create($endDateFormat); 
$dateTime2 = date_format($date2, 'Y-d-m H:i:s'); 

任意のアイデア:日付ピッカーからテキストにclockpickerからテキストを連結するために、私はそれを行いますか?

SOLUTION: フォーマットする場合、はYmdのMySQLの要件に準拠し、YDM NOT:

$dateTime2 = date_format($date2, 'Y-m-d H:i:s'); 
+0

なぜ「2016-17-19」として後者の代わりに保存したいですか? –

+0

@CaelanGrgurovicあなたが選んだ興味深い日付は何ですか?どのカレンダーであるかは – RiggsFolly

+0

です。有効なMySQLデータ形式(YYYY-MM-DD)である可能性が高いためです。とにかく、これはフォーマットが有効な日付フォーマットでないときに起こります。そのため、MySQLはそれをどのように扱うべきか分かりません。挿入の前に '$ dateTime1'と' $ dateTime2'をエコーし​​、常に期待どおりの形式であることを確認してください。また、2016-17-09のような日付はありません(カレンダーには12ヶ月しかありません)。 –

答えて

3

MYSQLは、日付形式はYYYY-MM-DD HHことを期待:MM:SSあなたはそれを保存DATETIMEまたはTIMESTAMP列のデータ型にデータベースに格納

YYYY-DD-MMとして保存しようとしています。これは、DDが12未満の場合にのみ機能するので、時にはうまくいかず、時にはうまくいかない理由が説明されている可能性があります。

MYSQLの予想どおりに日付を正しくフォーマットしてください。

また、データベースに保存した日付を読み返すと、奇妙な結果になることが予想されます。

+0

はい、これはバグです。それが私が最初にフォーマットをしている理由ですが、何らかの理由で私は混乱して、DとMの順序を変更しました....ありがとう! – iBobb

関連する問題