日期时间格式无效:1292 不正确的日期时间值 - Laravel 5.4

3

我使用官方的Laravel安装程序进行了全新的Laravel 5.4安装。 我运行了php artisan make:auth来创建登陆/注册系统。当我手动在数据库中输入用户时,登录页面可以正常工作,但是我的注册页面给我以下错误:

SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2017-03-12 02:53:06' for column 'updated_at' at row 1

并且

SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2017-03-12 02:53:06' for column 'updated_at' at row 1 (SQL: insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) values (Jonathan Stowe, john@doe.com, $2y$10$ukSU8/YktI88igoHxhgjdeahZhFZinoR.8vCNMpjv9CjeQRe.izsq, 2017-03-12 02:53:06, 2017-03-12 02:53:06))

我正在使用PHP v7.1.1、MySQL v5.6.35和Laravel 5.4.*。我在谷歌上搜索错误信息,只找到了有关自定义迁移的信息,但没有默认迁移的信息。是我配置出了问题吗?还是这个错误已知?我可以提供任何需要的文件。提前感谢!

你是如何填充这些值的? - Sanzeeb Aryal
请检查您的字段数据类型,应该是datetime而不仅仅是date。 - bharat savani
1个回答

5
那个时间实际上不存在 :) 我假设你使用的时区采用了夏令时。在2017年3月12日02:00:00至2017年3月12日02:59:59之间,那段时间就不存在了,这就是为什么你会收到那个错误提示。

那我该怎么修复呢?我没有修改任何文件。 - hightekjonathan
你的MySQL服务器可能处于DST时区,而你存储的数据很可能是UTC时间,而UTC时间没有DST。你需要更改SQL服务器上的时区以使用UTC,但这会带来自己的挑战,尤其是对于现有数据。 - Jonathan
我在这篇文章中解释了如何做到这一点。https://dev59.com/7Z_ha4cB1Zd3GeqP27BE#42589586 - Jonathan
确保服务器和MySQL的时区相同。如果MySQL不在正确的时区,您可以使用SET GLOBAL time_zone = timezone;进行更新。 - Gab
@Augwa 这些方法都没有对我起作用。我正在使用MAMP v4,当我创建my.cnf文件时MySQL服务器无法启动。 - hightekjonathan
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接