>  기사  >  백엔드 개발  >  루멘 타임존 시간대 설정 방법

루멘 타임존 시간대 설정 방법

小云云
小云云원래의
2018-01-24 11:22:112021검색

처음 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:00DB_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

데이터베이스 시간대 문제가 해결되었습니다.

데이터베이스의 타임존 문제는 해결되었으나 앱의 타임존 문제는 해결되지 않았습니다. lumen 프로젝트를 전역적으로 검색하여 /vendor/laravel/lumen-framework에서 타임존이 사용된 위치를 찾으세요. /src/Application.php 루멘 타임존 부분을 초기화하는 코드는 <p><strong></strong></p><pre class="brush:plain;">APP_TIMEZONE=PRC DB_TIMEZONE=+08:00</pre><p> 파일에서 찾을 수 있습니다. 코드에 사용된 .env 매개변수는 APP_TIMEZONE이고 값은 UTC를 PRC로 변경합니다. 여기에 또는 .env 파일 <code>APP_TIMEZONE=PRC

lumen에

를 추가하세요. php 시간대 설정 문제가 해결되었습니다.

Lumen 시간대 설정 요약

.env 파일을 편집하여 구성 추가

/vendor/laravel/lumen-framework/config/database.php
/vendor/laravel/lumen-framework/src/Application.php

.env 구성 파일이 활성화되지 않은 경우


rrreee

을 편집하여 APP_TIMEZONE 및 DB_TIMEZONE 매개변수를 수정하세요. 각각의 가치.


.env 구성 파일 활성화


Lumen 루트 디렉터리의 .env.example 파일 이름을 .env로 바꾸고 /bootstrap/app.php를 편집한 후 다음 코드 줄의 주석 처리를 제거하세요

Dotenv::load(__DIR__. '/../');

추가:

루멘은 기본적으로 그리니치 시간을 사용하기 때문에 베이징 시간으로 변환해야 합니다. .env에

APP_TIMEZONE=PRC를 추가하세요.

DB_TIMEZONE=+08:00이렇게 하면 시간이 정확해집니다

관련 권장사항:

루멘 프레임워크의 사용자 정의 종속성 주입에 대한 간략한 이야기🎜🎜🎜🎜PHP 날짜 및 시간 기능 시스템 시간대 설정🎜🎜🎜🎜Linux PHP MySQL 시간대 설정 방법 상세 설명_PHP 튜토리얼🎜🎜

위 내용은 루멘 타임존 시간대 설정 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.