在Laravel工厂,我有:
'created_at' => now()->subDays(mt_rand(1,90))->subHours(mt_rand(1,23))->toDateTimeString()
这之前运作良好,我认为是在拉拉维尔7.2。我所说的“工作很好”的意思是,我运行它是为了插入10.00或更多行,它从未失败过。在更新到7.10.3之后,我现在得到以下错误:
SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2020-03-29 02:10:11' for column 'created_at'
它实际上在失败之前插入了几百行,因此它似乎是一个失败的特定日期或时间。在实际插入的行中,有些以2020-03-29作为日期,有些以02:10:11作为时间,因此我不知道为什么这是“无效格式”。
发布于 2020-05-08 21:31:28
2020年3月29日是欧洲夏令时开始的时候。我假设你在中欧时间(CET)时区,从凌晨2点到凌晨3点,时间提前了1小时,所以没有凌晨2:10,所以你的约会时间无效。
你有几个选择:
app.timezone
配置键)。在将其转换为字符串之前,您可以更新您的工厂以调用碳实例上的setTimezone(/* db timezone */)
(这将确保碳不会为数据库时区创建无效的日期时间)。https://stackoverflow.com/questions/61687626
复制相似问题