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

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

jacklove
jacklove원래의
2018-06-29 17:45:381769검색

오늘 Lumen 프레임워크를 사용하여 코드를 작성할 때도 처음으로 Lumen을 경험했는데, 데이터베이스에서 찾은 시간이 데이터베이스에 저장된 TIMESTAMP 시간보다 8시간 느린 문제가 발생했습니다. 이게 타임존 설정인데 1분 안에 문제가 해결될 줄 알았는데 틀렸어요

라라벨 4.x와 5.0의 경험에 따르면 '타임존'만 설정하면 됩니다. config/app.php의 'PRC' 매개변수는 괜찮습니다. /vendor/laravel/lumen-framework/config 경로 아래에 있는 Lumen의 구성 디렉토리를 찾으십시오. 그러나 config의 매개변수 옵션에는 시간대 매개변수 옵션이 없습니다. /app.php이며, 수동으로 추가해도 유효하지 않습니다.

그러다가 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 시간으로 변경하면 문제가 해결됩니다. 프로젝트에서 .env 구성 파일을 활성화했기 때문에

DB_TIMEZONE=+08:00

database 줄이 마침내 .env에 추가되었습니다. file.timezone 문제가 해결되었습니다. 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 파일에서 찾을 수 있습니다. 매개변수는 APP_TIMEZONE이고 값은 UTC입니다. 여기에서 UTC를 PRC로 변경하거나 #을 추가하세요. 🎜🎜#

APP_TIMEZONE=PRC

lumen .env 파일의 PHP 시간대 설정 문제가 해결되었습니다.

루멘 시간대 설정 요약

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

APP_TIMEZONE=PRC
DB_TIMEZONE=+08:00
# 🎜🎜 #

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

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

APP_TIMEZONE 수정 및 DB_TIMEZONE 매개변수 값을 각각 지정합니다.

.env 구성 파일 활성화


Lumen 루트 디렉터리의 .env.example 파일 이름을 .env로 바꾸고, /bootstrap/ 앱을 편집합니다. .php에서 다음 코드 줄의 주석 처리를 제거합니다.

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

Added:


because lumen defaults To GMT를 사용하려면 베이징 시간으로 변환해야 합니다.

Add


APP_TIMEZONE=PRC

DB_TIMEZONE=+08:00

을 .env에 추가하여 시간이 정확하도록

#🎜🎜 #관련 추천 :

php nginx 실시간 출력의 간단한 구현 방법

PHP 주석 구문 사양 명명 규칙에 대한 자세한 설명

php 언어 주석, 한 줄 주석 및 여러 줄 주석 관련 콘텐츠
#🎜 🎜## 🎜🎜#

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

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