created_at 列中的时间不正确 - Laravel 5.4

Posted

技术标签:

【中文标题】created_at 列中的时间不正确 - Laravel 5.4【英文标题】:Incorrect time in created_at column - Laravel 5.4 【发布时间】:2019-11-08 04:29:08 【问题描述】:

我在 mysql 数据库中有一个带有时间戳列(created_at 和 updated_at)的表。我正在使用 laravel 5.4 版和 php 7.0。

我碰巧注意到它在此特定列中添加了不正确的时间。

例如:一条记录​​实际上是在上午 9:01 添加的,但 created_at 列有上午 9:05。这并不总是,偶尔会发生。 (对于 20 个数据库条目中的 1 个)。

【问题讨论】:

可能是托管mySql服务器的机器与托管web服务器的机器不同步? 尝试使用created_at->format('H:i a'); @Amarnasan,它是同步的。这是一种偶尔的行为。 【参考方案1】:

我只是希望在本地运行项目时不会发生。它在托管时发生,这取决于您的服务器运行的位置。

【讨论】:

即使在服务器上,也是偶尔的。这种情况并不总是发生。在我做了 php artisan down 和 php artisan up 大约一小时后,我开始注意到这种行为。 这甚至不是一个答案,而是一个评论。【参考方案2】:

您可以在config/app.php文件中设置时区

查找

'timezone' => env('APP_TIMEZONE', 'Asia/Colombo'),

您可以根据您的项目设置任何时区

您可以转换不同时区的时间

Asia/ColomboAmerica/New_York

$model->updated_at->timezone('America/New_York')->format('d-m-Y h:i A');

【讨论】:

我认为这不是时区问题。当时间真的是上午 9.01 时,它添加为上午 9.05。这是偶尔的。所有其他时间 created_at 时间戳都根据当前时间正确更新。 您的站点/数据库是托管的还是在本地机器上使用? 托管在服务器上 您可以更新配置文件作为我的答案。它应该工作 在您的应用程序中,created_at 和 updated_at 时间将保存为 UTC 时间。您可以设置特定的时区

以上是关于created_at 列中的时间不正确 - Laravel 5.4的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 7 - created_at 在数据表中显示错误的日期时间

WPF DataGrid在同一列中的不同控件 - 不正确的绑定

MYSQL 中的日期格式不正确

获取存储在 s3 中的文件的正确 createdAt 和 modifiedAt 日期

Eclipse 代码格式未正确对齐列中的字段

使用laravel中的日期组从数据库中获取数据[重复]