Laravel 和 MySQL 在 DateTime 方面表现不佳

标签 laravel

我使用 Laravel 和 SQLite 创建了一个 Web 应用程序,一切都很顺利。现在,我想使用 MySQL 作为数据库,但现在我无法将数据添加到我的表中。

这是我迁移的字段:

$table->dateTime('last_updated')->nullable();

这就是我使用 laravel 填充该字段的方式:

$client->last_updated = time();

但它给了我这样的错误:

Illuminate \ Database \ QueryException
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '1402140378' for column 'last_updated' at row 1 (SQL: update `clients` set `last_updated` = 1402140378 where `id` = 1)

任何帮助将不胜感激。

最佳答案

$table->dateTime创建 DATETIME数据库中需要值为 YYYY-MM-DD HH:ii:ss 的列。您要插入的是 unix 时间戳。

您可以使用Carbon (需要在文件顶部使用 Carbon\Carbon),

$client->last_updated = Carbon::now()

date(...) ,

$client->last_updated = date('Y-m-d H:i:s') 

或 PHP 的 DateTime类将当前日期时间插入数据库..

关于Laravel 和 MySQL 在 DateTime 方面表现不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096730/

相关文章:

Laravel 在类里面的责任

php - Laravel - 格式错误的 UTF-8 字符,可能编码不正确

php - laravel 5.5 eloquent 查询构建器在使用查询字符串存储 url 时构建错误的查询

php - 制作主要功能的地方 laravel

php - "The page has expired due to inactivity"- Laravel 5.5

laravel - 无法使用 Laravel 项目解析 PhpStorm 中的目录 "node_modules"

php - laravel:具有索引值的循环图像文件夹

php - Laravel 检索多行数据

validation - 如何在 Laravel 中为嵌套输入设置自定义属性标签

php - 我们可以在 laravel 中根据请求添加属性吗