使用mysqli保存时间戳

时间:2015-09-04 16:23:53

标签: php jquery mysql mysqli timestamp

我通过My​​SQLi将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也无效。

我觉得我犯了一个微不足道的错误但却无法理解它是什么。我做错了什么?

2 个答案:

答案 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'));

试试这个。更改格式。