我正在将Laravel 5.5和MySQL都托管在AWS上。
当我运行app.php
命令时,我在UTC
中将时区设置为UTC,服务器中的时间也是date
。
但是,当我从应用程序的仪表板中删除模型对象时,updated_at
被设置为计算机的时间而不是UTC。也就是说,deleted_at
设置为UTC!只是我遇到的updated_at
。
这是删除Laravel中对象的代码:
/**
* Remove the specified resource from storage.
*
* @param $eventId
*
* @return Response
*
* @internal param int $id
*/
public function destroy( $eventId ) {
$this->eventsService->dashboard->delete( $eventId );
flash( 'Event has been deleted', 'success' );
if ( str_contains( $_SERVER['HTTP_REFERER'], 'events/' . $eventId . '/edit' ) ) {
return redirect( '/events' );
}
return redirect( $_SERVER['HTTP_REFERER'] );
}
这来自app.php
:
'timezone' => 'UTC',
这是我在服务器上运行date
的时候
Tue Aug 21 04:48:42 UTC 2018
这是一项计划中的工作,它将事件的状态(该应用用于旅行体验)从future
更新为current
...等,它使用了Carbon
软件包:< / p>
$schedule->command(EventsUpdateStatus::class)->everyMinute();
当我在数据库上运行:SELECT @@global.time_zone, @@session.time_zone;
时,它说:UTC
。
还有什么要检查以确保updated_at
遵循UTC?
答案 0 :(得分:0)
您必须更改MySql全局参数以设置默认时区
查看以下链接
https://dba.stackexchange.com/questions/20217/mysql-set-utc-time-as-default-timestamp