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

PHP와 MySQL에서 시간대를 효과적으로 처리하는 방법은 무엇입니까?

2024년 12월 22일에 게시됨
검색:109

How to Handle Time Zones Effectively in PHP and MySQL?

PHP 및 MySQL의 시간대

시간대 시스템을 PHP 애플리케이션에 통합하는 것은 어려울 수 있지만 서로 다른 애플리케이션의 데이터를 처리할 때는 필수적입니다. 시간대. 다음은 가장 일반적인 문제를 해결하고 실용적인 솔루션을 제공하는 포괄적인 가이드입니다.

MySQL에 날짜 시간 저장

  • DATETIME 또는 TIMESTAMP 사용: DATETIME은 더 높은 정밀도를 제공하는 반면 TIMESTAMP는 초 단위까지의 정확도가 그렇지 않은 경우에 적합합니다. 중요합니다.
  • UTC로 저장: 모든 날짜 시간이 일관되게 처리되도록 MySQL 연결 시간대를 UTC로 설정하세요.

날짜 시간 변환

  • MySQL로: 다음을 사용하여 MySQL에 저장하기 전에 PHP 날짜 시간을 UTC로 변환합니다. DateTime::setTimezone('UTC').
  • MySQL에서: MySQL 값에서 PHP DateTime 객체를 생성하고 올바른 해석을 위해 UTC 시간대를 지정합니다.

일광 절약 시간(DST) 처리

MySQL은 기본적으로 DST를 처리하지 않습니다. PHP의 DateTimeZone 클래스는 사용자 위치에 따라 DST를 자동으로 처리하는 명명된 시간대를 제공하며, 이는 사용자 지향 타임스탬프에 사용해야 합니다.

레거시 데이터 마이그레이션

존재하는 경우 시간대를 고려하지 않고 데이터가 삽입된 경우 MySQL의 CONVERT_TZ 함수를 사용하여 선택 및 업데이트 중에 타임스탬프를 수정하세요. 또는 UTC로 변환한 다음 현지 시간대로 다시 변환하여 타임스탬프를 업데이트합니다.

사용자 기본 설정에 대한 시간대 선택

  • 제안 이름 시간대: DateTimeZone::listIdentifiers()를 사용하여 명명된 시간 목록을 검색합니다. zones.
  • 데이터베이스에 저장: 사용자가 선택한 시간대를 데이터베이스의 키 또는 식별자로 저장합니다.

예제 코드

참고: 데이터 불일치와 사용자 혼란을 방지하려면 타임스탬프를 일관되게 저장하고 변환하는 것이 중요합니다. 다음 지침을 따르면 PHP 및 MySQL 애플리케이션에서 시간대를 효과적으로 관리할 수 있습니다.

최신 튜토리얼 더>

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

Copyright© 2022 湘ICP备2022001581号-3