Laravel / MYSQL created_at和updated_at正在应用不同的时区

时间:2018-12-19 05:07:23

标签: php mysql laravel

我有一个正在使用

的应用
'timezone' =>'UTC'

在数据库设置中。这适用于所有created_at字段,但是updated_at字段仍位于错误的时区

我如何使MYSQL将正确的时区应用于Updated_at字段?

这些是我的数据库设置

'default' => 'main_db',
'fetch' => PDO::FETCH_ASSOC,
'connections' => [
    'main_db' => [
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => env('DB_DATABASE'),
        'username'  => 'root',
        'password'  => env('DB_PASSWORD'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'timezone' => env('DB_TIMEZONE')

env('DB_TIMEZONE')为'UTC'

3 个答案:

答案 0 :(得分:0)

我有一个类似的问题,我只是将我的国家/地区设置为它对我有用

'timezone' =>'America/Vancouver'

设置脚本中所有日期/时间函数使用的默认时区

http://php.net/manual/en/function.date-default-timezone-set.php

答案 1 :(得分:0)

您需要检查数据库,因为那里的数据类型是否相似,并且默认情况下,还要检查是否已将cuurent时间戳记用作默认值,然后

检查数据库。

答案 2 :(得分:0)

我们转到文件config/app.php并查找以下条目:

/*
|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|
*/

'timezone' => 'UTC',

如您所见, UTC 是Laravel的默认值。因此,您可以在此处轻松地将其更改为欧洲/伦敦美国/洛杉矶_ -查看完整列表PHP Supported Timezones

如果您更改此设置,很遗憾,旧条目不会自动更改,但是新条目将与 created_at,updated_at 以及指定时区中的类似字段一起保存。