처음 Lumen을 사용했을 때 데이터베이스에서 찾은 시간이 데이터베이스에 저장된 TIMESTAMP 시간보다 8시간 느린 문제가 발생했습니다. 분명히 이는 시간대 설정 문제입니다. 루멘 시간대 설정 방법이 모든 사람에게 도움이 되기를 바랍니다.
Laravel 4.x 및 5.0의 경험에 따르면 config/app.php에서 'timezone' 매개변수를 'PRC'로 설정하기만 하면 /vendor/laravel/lumen-framework /에서 Lumen 구성 디렉터리를 찾을 수 있습니다. config 경로인데 config/app.php의 매개변수 옵션에 timezone 매개변수 옵션이 없고, 수동으로 추가해도 유효하지 않습니다.
그러다 Laravel 5의 .env 파일을 생각해보니 Lumen의 .env 파일에는 시간대 설정 옵션이 없다는 것을 알게 되었습니다.
config 디렉터리로 돌아가서 config/database.php의 설정을 살펴보세요. mysql의 기본 구성은 다음과 같습니다.
'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' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => env('DB_PREFIX', ''), 'timezone' => env('DB_TIMEZONE','+00:00'), 'strict' => false, ],
여기에는 데이터베이스에 대한 시간대 설정이 있으며 기본값은 +00입니다. :00(UTC 시간)이 +08:00으로 변경되었습니다. 문제가 해결되었습니다. 프로젝트에서 .env 구성 파일을 활성화했기 때문에 마침내 .env 파일에 한 줄이 추가되었습니다
DB_TIMEZONE=+08:00
DB_TIMEZONE=+08:00
数据库 timezone 问题解决。
数据库的 timezone 问题虽然解决了, 但是 app 的 timezone 问题还没解决, 全局搜索 lumen 项目, 找用到 timezone 的地方, 在 /vendor/laravel/lumen-framework/src/Application.php
文件中找到了初始化 lumen timezone 部分的代码
/** * 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')); $this->basePath = $basePath; $this->bootstrapContainer(); $this->registerErrorHandling(); }
代码中使用的 .env 参数为 APP_TIMEZONE, 值为 UTC, 在这里将 UTC 改为 PRC, 或者在 .env 文件里添加
APP_TIMEZONE=PRC
/vendor/laravel/lumen-framework에서 타임존이 사용된 위치를 찾으세요. /src/Application.php< /code> 루멘 타임존 부분을 초기화하는 코드는 <p><strong></strong></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:plain;">APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00</pre><div class="contentsignin">로그인 후 복사</div></div><p> 파일에서 찾을 수 있습니다. 코드에 사용된 .env 매개변수는 APP_TIMEZONE이고 값은 UTC를 PRC로 변경합니다. 여기에 또는 .env 파일 <code>APP_TIMEZONE=PRC
lumen에
Lumen 시간대 설정 요약
.env 파일을 편집하여 구성 추가
/vendor/laravel/lumen-framework/config/database.php /vendor/laravel/lumen-framework/src/Application.php
rrreee
을 편집하여 APP_TIMEZONE 및 DB_TIMEZONE 매개변수를 수정하세요. 각각의 가치.Dotenv::load(__DIR__. '/../');
추가:
루멘은 기본적으로 그리니치 시간을 사용하기 때문에 베이징 시간으로 변환해야 합니다. .env에
APP_TIMEZONE=PRC를 추가하세요.DB_TIMEZONE=+08:00이렇게 하면 시간이 정확해집니다
루멘 프레임워크의 사용자 정의 종속성 주입에 대한 간략한 이야기🎜🎜🎜🎜PHP 날짜 및 시간 기능 시스템 시간대 설정🎜🎜🎜🎜Linux PHP MySQL 시간대 설정 방법 상세 설명_PHP 튜토리얼🎜🎜위 내용은 루멘 타임존 시간대 설정 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!