【问题标题】:Timezone issue in Lumen流明的时区问题
【发布时间】:2016-08-06 00:39:42
【问题描述】:

我有一个问题,我将 Lumen 配置中的时区设置为欧洲/伦敦。这一直运行良好,直到最近更改为设置正确的 created_at 和 updated_at 日期的 DST,但是当我调用记录时,它显示的日期时间好像是 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”。

我们将不胜感激地收到有关此时区问题的任何帮助。

【问题讨论】:

    标签: php laravel datetime lumen


    【解决方案1】:

    我遇到了解决方案。事实证明,您需要将一个变量添加到 Lumen 中处理数据库的 .env 文件中。

    DB_TIMEZONE=+01:00
    

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

    【讨论】:

    • 你也可以使用DB_TIMEZONE=null来保持服务器时区(可能已经同步到Europe/London
    【解决方案2】:

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

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

    例如 因此在 2016-04-14 10:00:00 输入并显示 2016-04-14 15:00:00,然后在 中设置 DB_TIMEZONE=+05:00 。环境

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-27
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 2020-09-18
      • 2015-03-17
      相关资源
      最近更新 更多