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