Lumen的时区问题

时间:2016-04-14 12:40:55

标签: php laravel datetime lumen

我有一个问题,我将Lumen配置的时区设置为欧洲/伦敦。这一直工作得很好,直到最近更改为DST,它设置了正确的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"
}

然而,当我拉一条记录时,应该创建一个created_at日期为2016-04-14 10:00:00'它返回' 2016-04-14 09:00:00'。

我们非常感谢您对此时区问题的任何帮助。

2 个答案:

答案 0 :(得分:5)

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

DB_TIMEZONE=+01:00

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

答案 1 :(得分:0)

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

只需在.env

中设置差异(显示时间和输入记录的时间之间)。

例如 因此,输入是在 2016-04-14 10:00:00 上进行的,并显示 2016-04-14 15:00:00 ,然后设置DB_TIMEZONE=+05:00在.env