如何使所有数据库更改都遵循UTC时区?

时间:2018-08-21 04:56:00

标签: php amazon-web-services datetime laravel-5 utc

我正在将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?

1 个答案:

答案 0 :(得分:0)

您必须更改MySql全局参数以设置默认时区

查看以下链接

https://dba.stackexchange.com/questions/20217/mysql-set-utc-time-as-default-timestamp