MySQL时间戳INSERT没问题,但有时会失败

时间:2016-05-09 10:34:47

标签: php mysql twitter-bootstrap datetime insert

所以我有一个bootstrap 3表单,其中有一个clockpicker和一个datepicker插件。我通过PHP获取所有数据并尝试插入MySQL(目前在XAMPP中)。有时INSERT是可以的,但有时DB中的一个或两个Timestamp字段都保留在0000 ....

由于我显示日期17/09/2016,但我尝试将其保存为MySQL中的2016-17-09,我必须将timepicker中的文本连接到日期选择器中的文本,我这样做:

    $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');

有什么想法吗?

: 格式化时,符合MySQL对Y-m-d的要求,而不是Y-d-m:

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

1 个答案:

答案 0 :(得分:3)

当您在DATETIME或TIMESTAMP列数据类型中将日期格式保存到数据库时,MYSQL期望日期格式为YYYY-MM-DD HH:MM:SS

您正尝试将其另存为YYYY-DD-MM。这只有在DD小于12的情况下才有效,这可能解释了为什么它有时会起作用,有时候不会

因此,请将您的日期格式正确地设置为MYSQL所期望的,并且一切顺利。

当你回读保存到数据库的日期时,我也希望你得到一些奇怪的结果。