8

我没有找到关于如何在 Lumen 5.2 中设置默认时区的任何相关信息(只有技巧)。有什么干净的方法可以做到这一点吗?

4

6 回答 6

15

在 Lumen 5.2 中,Application 类实际上是从 APP_TIMEZONE 环境变量中读取的。

您可以通过 .env 文件使用或设置服务器上的环境变量轻松设置时区:

APP_TIMEZONE=UTC
于 2016-02-15T01:53:16.583 回答
7

我在很多论坛上阅读的回复都没有解决这个问题,因为在文件 /vendor/laravel/lumen-framework/config/database.php 中有这一行:

'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'port'      => env('DB_PORT', 3306),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => env('DB_CHARSET', 'utf8'),
            'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),
            'prefix'    => env('DB_PREFIX', ''),
            **'timezone'  => env('DB_TIMEZONE', '+00:00'),**
            'strict'    => env('DB_STRICT_MODE', false),
        ],

您需要重写此配置文件。在 config 文件夹中创建一个 database.php 文件。然后复制没有时区行的所有内容。这对我有用。

于 2016-10-17T08:55:18.913 回答
6

这很容易完成并显示在他们的文档页面中:

要在运行时设置配置值,请将数组传递给配置助手:

config(['app.timezone' => 'America/Chicago']);

或者,在app/config.php

'timezone' => 'UTC',
于 2016-02-08T15:34:32.453 回答
5

.env您可以在文件中添加您的时区

APP_TIMEZONE=YOUR_TIME_ZONE

文件:

时区列表

流明文档

于 2019-04-18T00:19:40.100 回答
2

只是为了恢复并超级清楚(在今年 2018 年):

Lumen 框架的所有配置选项都存储在 .env 文件中。

在 Lumen中不存在文件config/app.php


但是,如果我们看vendor/laravel/lumen-framework/src/Application.php

/**
 * Create a new Lumen application instance.
 *
 * @param  string|null  $basePath
 * @return void
 */
public function __construct($basePath = null)
{
    ...
        date_default_timezone_set(env('APP_TIMEZONE', 'UTC'));
    ...

参考: https ://github.com/laravel/lumen-framework/blob/5.6/src/Application.php#L83

我们看到 Lumen 不会取任何config值,只是一个env设置时区的值。

/laravel/lumen-framework/config directory因此,在 Lumen 中使用的复制/粘贴技术full "Laravel style" configuration files在这种情况下不适用,而且从来没有。

此外:该技术是对 Lumen 第一版的旧参考。
参考:https://lumen.laravel.com/docs/5.1#configuration-files。(旧文档)

在 Lumen 的当前 5.6 版本中,该提示已从文档中删除,并且可能是在 Lumen 初期帮助从 Laravel 迁移的提示,但不再是一个好的做法。所以总是使用 .env 文件
参考:https ://lumen.laravel.com/docs/5.6#configuration (新文档)

于 2018-03-22T14:41:45.057 回答
1

config/app.php
你可以改变它

'时区' => 'UTC',

于 2016-02-08T15:33:41.927 回答