卢门的时区问题


Timezone issue in Lumen

我有一个问题,我在Lumen的配置中将时区设置为欧洲/伦敦。在最近更改为夏令时之前,这一直运行良好,它设置了正确的created_at和updated_at日期,但当我调用记录时,它显示的日期时间就像是UTC而不是BST/DST。

在我的config/app.php文件中,我有;

...
timezone' => 'Europe/London',
...

在我检查的路线上,我有;

$app->get('mytime', function() {
    $now = Carbon'Carbon::now();
   dd($now, date('Y-m-d H:i:s'));
});

返回

Carbon {#35 ▼
  +"date": "2016-04-14 10:33:15.000000"
  +"timezone_type": 3
  +"timezone": "Europe/London"
}

然而,当我提取一条记录时,它会返回"2016-04-14 09:00:00"。

如有任何关于时区问题的帮助,我们将不胜感激。

我发现了这个解决方案。据了解,在Lumen中处理数据库的.env文件中需要添加一个变量。

DB_TIMEZONE=+01:00

您可能需要添加一个cron作业来更新DST的更改变量,因为遗憾的是,不支持"欧洲/伦敦"。

我也尝试过很多解决方案。所以结论是:

只需在.env 中设置差异(显示的时间和您输入记录的时间之间)

例如。因此,在2016-04-14 10:00:00上进行输入,并显示2016-04-14 15:00:00

中设置DB_TIMEZONE=+05:00