PHP와 MySQL의 시간대 동기화
PHP date() 함수를 사용하여 MySQL에 날짜를 저장해야 하는 애플리케이션을 개발하고 있습니다. 시차를 계산하려면 NOW()를 사용하여 MySQL 내에서 이러한 날짜를 비교해야 합니다. 그러나 PHP date() 함수는 PHP에 정의된 시간대를 사용하는 반면 NOW()는 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