Laravel Factory不正确的日期时间值

爱斯基摩人

在Laravel工厂,我有:

'created_at' => now()->subDays(mt_rand(1,90))->subHours(mt_rand(1,23))->toDateTimeString()

以前这很好用,我认为是在Laravel 7.2上。“工作正常”是指我将其插入10.000s或更多行,但从未失败。更新到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年3月29日,欧洲开始实行夏令时(DST)。我假设您处于中欧时间(CET)时区,那里的时间从凌晨2点向前移动到凌晨1点,因此没有凌晨2:10,因此您的日期时间无效。

您有两种选择:

  1. 您可以更新数据库/数据库服务器以使用UTC。
  2. 您可以更新Laravel应用程序时区以匹配数据库服务器时区(app.timezoneconfig键)。
  3. 您可以更新工厂以setTimezone(/* db timezone */)在将Carbon实例转换为字符串之前对其进行调用(这将确保Carbon不会为数据库时区创建无效的日期时间)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel - SQLSTATE[22007]:无效的日期时间格式:1292 不正确的日期时间值:'1616818311712'

不正确的日期时间值 1292 Laravel 5.7 仅来自特定日期

laravel返回的时间不正确

TIMESTAMP值不正确的Laravel DB

laravel 5.7如何解决“无效的日期时间格式:1366不正确的整数值:”错误?

QLSTATE [22007]:无效的日期时间格式:1366不正确的整数值laravel

休眠日期时间值不正确

MySQL日期时间值不正确

尝试在 Laravel 中捕获不正确的值为 null

laravel 5.1 mongodb(jenssegers / laravel-mongodb)查询日期不正确

SQLSTATE[22007]:无效的日期时间格式:1366 不正确的整数值:Laravel 和 Angular 中列 `myapp`.`employees`.`state_id` 的“null”

1292不正确的日期时间值列“的updated_at”

MySQL表中的日期时间值不正确

截断了不正确的日期时间值mysql

MySQL中的日期时间值不正确

MySQL STR_TO_DATE日期时间值不正确

MySQL 1292日期时间值不正确

PhpStorm警告不正确的对象(Laravel)

Laravel的结果顺序不正确

Laravel HTML Facade输出不正确

Laravel表单提交不正确的路线?

Laravel迁移不正确的表定义

Laravel whereBetween查询工作不正确

日期值不正确

laravel时间遇到一个格式不正确的数值

Laravel:来自数据库的消息的日期显示不正确

将日期时间值与空值进行比较时日期时间值不正确

为什么我的变量在Laravel 5.4 Blade文件中显示不正确的值?

不正确的日期格式,带时间