流明中的时区问题
Timezone issue in Lumen
我在 Lumen 配置中将时区设置为 Europe/London 时遇到问题。在最近更改 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'));
});
哪个returns
Carbon {#35 ▼
+"date": "2016-04-14 10:33:15.000000"
+"timezone_type": 3
+"timezone": "Europe/London"
}
然而,当我提取一条记录时,它说应该有一个 created_at 日期 '2016-04-14 10:00:00' 它 returns '2016-04-14 09:00:00'。
如能就此时区问题提供任何帮助,我们将不胜感激。
我找到了解决方案。事实证明,您需要将一个变量添加到处理数据库的 Lumen 中的 .env 文件中。
DB_TIMEZONE=+01:00
您可能需要添加一个 cron 作业来更新夏令时变化时的变量,因为很遗憾 'Europe/London' 不受支持。
我也试过很多解决方法。所以结论是:
只需在 .env
中设置差异(显示时间与您输入记录的时间之间的差异。)
例如
因此,在 2016-04-14 10:00:00 上输入并显示 2016-04-14 15:00:00,然后在 .env
中设置 DB_TIMEZONE=+05:00
我在 Lumen 配置中将时区设置为 Europe/London 时遇到问题。在最近更改 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'));
});
哪个returns
Carbon {#35 ▼
+"date": "2016-04-14 10:33:15.000000"
+"timezone_type": 3
+"timezone": "Europe/London"
}
然而,当我提取一条记录时,它说应该有一个 created_at 日期 '2016-04-14 10:00:00' 它 returns '2016-04-14 09:00:00'。
如能就此时区问题提供任何帮助,我们将不胜感激。
我找到了解决方案。事实证明,您需要将一个变量添加到处理数据库的 Lumen 中的 .env 文件中。
DB_TIMEZONE=+01:00
您可能需要添加一个 cron 作业来更新夏令时变化时的变量,因为很遗憾 'Europe/London' 不受支持。
我也试过很多解决方法。所以结论是:
只需在 .env
例如 因此,在 2016-04-14 10:00:00 上输入并显示 2016-04-14 15:00:00,然后在 .env
中设置DB_TIMEZONE=+05:00