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/Colombo
到America/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在同一列中的不同控件 - 不正确的绑定