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

jacklove
풀어 주다: 2023-04-02 07:20:01
원래의
1792명이 탐색했습니다.

오늘 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿