所以我有一个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');
答案 0 :(得分:3)
当您在DATETIME或TIMESTAMP列数据类型中将日期格式保存到数据库时,MYSQL期望日期格式为YYYY-MM-DD HH:MM:SS
您正尝试将其另存为YYYY-DD-MM。这只有在DD小于12的情况下才有效,这可能解释了为什么它有时会起作用,有时候不会
因此,请将您的日期格式正确地设置为MYSQL所期望的,并且一切顺利。
当你回读保存到数据库的日期时,我也希望你得到一些奇怪的结果。