我通过MySQLi将jQuery UI datepicker日期保存到TIMESTAMP列中时出现问题。
我的变量$_POST['schedule']
包含04-09-2015
(dd-mm-yy)。我使用以下准备好的声明:
$stmt = $mysqli->prepare("INSERT INTO campaigns (schedule) VALUES (?)");
$stmt->bind_param("s", strtotime($_POST['schedule']));
当我检查数据库时,相应的时间戳列始终重置为0000-00-00 00:00:00
。如果我回显strtotime($_POST['schedule'])
,我会得到一个有效的UNIX时间戳。
同时将bind_param从s
更改为i
也无效。
我觉得我犯了一个微不足道的错误但却无法理解它是什么。我做错了什么?
答案 0 :(得分:0)
我找到解决此问题的唯一方法是使用以下内容并更改格式:
$date = DateTime::createFromFormat('d-m-Y', $_POST['schedule']);
$date = $date->format('Y-m-d');
$stmt = $mysqli->prepare("INSERT INTO campaigns (schedule) VALUES (?)");
$stmt->bind_param("s", $date);
答案 1 :(得分:0)
$date = date_create($_POST['schedule']);
$stmt = $mysqli->prepare("INSERT INTO campaigns (schedule) VALUES (?)");
$stmt->bind_param("s", date_format($date, 'Y-m-d H:i:s'));
试试这个。更改格式。