"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP와 MySQL에서 시간대를 동기화하는 방법은 무엇입니까?

PHP와 MySQL에서 시간대를 동기화하는 방법은 무엇입니까?

2024년 11월 17일에 게시됨
검색:147

How to Synchronize Timezones in PHP and MySQL?

PHP와 MySQL의 시간대 동기화

PHP date() 함수를 사용하여 MySQL에 날짜를 저장해야 하는 애플리케이션을 개발하고 있습니다. 시차를 계산하려면 NOW()를 사용하여 MySQL 내에서 이러한 날짜를 비교해야 합니다. 그러나 PHP date() 함수는 PHP에 정의된 시간대를 사용하는 반면 NOW()는 MySQL 서버에 구성된 시간대를 사용합니다.

이 문제를 해결하기 위해 다양한 접근 방식을 시도했습니다.

  • date_default_timezone_set('Europe/Paris')는 PHP에만 영향을 미칩니다.
  • date.timezone = "유럽/파리"는 PHP에만 적용됩니다. PHP.
  • SELECT CONVERT_TZ(now(), 'GMT', 'MET')는 빈 결과를 반환합니다.
  • mysql> SET time_zone = 'Europe/Paris'는 MySQL 콘솔에 오류를 표시합니다. .

궁극적으로 MySQL 시간대는 그대로 유지됩니다. 변경되지 않았습니다.

솔루션

php.ini에서 수동 콘솔 명령이나 수정 없이 PHP와 MySQL의 시간대를 동기화합니다:

PHP:

define('TIMEZONE', 'Europe/Paris');
date_default_timezone_set(TIMEZONE);

MySQL:

$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins d', $hrs*$sgn, $mins);

// Assuming an existing DB connection named $db
$db->exec("SET time_zone='$offset';");

이 접근 방식은 PHP와 MySQL이 모두 동일한 시간대를 사용하도록 보장하여 날짜 저장 및 비교의 불일치를 제거합니다. 또한 수동으로 시간대를 설정하거나 전역 구성 파일을 수정할 필요가 없습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3