如何将我的日期时间存储为数据库中的日期

时间:2018-10-28 16:04:01

标签: php mysql laravel date

目标:我想将一些数据从api保存到我的数据库中,日期在api中如下所示:

"utcDate": "2018-10-28T13:30:00Z"

我尝试在迁移中使用datetime,但是却收到错误消息,指出这不是正确的格式。

$table->datetime('date');

我的错误:

PDOException::("SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2018-10-20T11:30:00Z' for column 'date' at row 1")

还有其他将日期存储为数据库中日期的方法吗?

2 个答案:

答案 0 :(得分:1)

在插入值之前,您需要使用date将其转换为datetime格式DateTime,这会导致错误,因为$table->datetime('date');对您不起作用将其转换为date格式。您也可以使用MYSQL DATE()将其从date投射到datetime

<?php

$datetime = "2018-10-28T13:30:00Z";
$date = new DateTime($datetime);
echo $date->format('Y-m-d');
?>

OR

<?php
$datetime = "2018-10-28T13:30:00Z";
echo date("Y-m-d", strtotime($datetime));
?>

答案 1 :(得分:0)

我认为使用MySQL的DATE()方法可以很轻松地完成此查询

    INSERT INTO `test`
    (`createdAt`)
    VALUES
    (DATE('2018-01-01 07:00:01'));