如何在流明5.2中设置时区?

时间:2016-02-08 15:30:40

标签: php laravel lumen lumen-5.2

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

6 个答案:

答案 0 :(得分:12)

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

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

APP_TIMEZONE=UTC

答案 1 :(得分: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文件。然后复制所有内容而不使用时区线。这对我有用。

答案 2 :(得分:2)

这很容易完成并显示在documentation page

  

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

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

或者,在app/config.php

'timezone' => 'UTC',

答案 3 :(得分:1)

config/app.php中  你可以改变它

  

'timezone'=> 'UTC',

答案 4 :(得分:1)

恢复并且非常清楚(在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

我们发现流明不会使用任何config值,只需env值来设置时区。

所以在Lumen中复制/粘贴/laravel/lumen-framework/config directory以使用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(新文档)

答案 5 :(得分:0)

您可以将时区添加到.env文件中

APP_TIMEZONE=YOUR_TIME_ZONE

文档:

List of Timezone

Lumen Documentation