> 백엔드 개발 > PHP 튜토리얼 > 2038년 문제는 무엇이며 어떻게 피할 수 있습니까?

2038년 문제는 무엇이며 어떻게 피할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-12-15 18:54:11
원래의
972명이 탐색했습니다.

What is the Year 2038 Problem and How Can We Avoid It?

2038년 버그: 종합 가이드

2038년 버그는 서명된 32비트를 사용하는 시스템에서 발생할 수 있는 잠재적인 소프트웨어 오작동입니다. 1970년 1월 1일 이후의 초 수로 시스템 시간을 저장하는 정수입니다. 자세한 내용은 다음과 같습니다. 분석:

2038년 문제는 무엇입니까?

2038년 1월 19일 03:14:07 UTC를 초과하면 32비트 카운터가 UNIX 시대가 "순환"되어 12월 시간으로 해석된 음수 값을 저장한 이후 초 1901.

원인과 결과

32비트 정수의 최대값을 초과했기 때문에 발생합니다. 이 시간 표시에 의존하는 시스템은 미래 날짜를 과거 날짜로 잘못 해석하여 잠재적으로 오류 및 실패를 일으킬 수 있습니다.

해결책:

  • 긴 데이터 유형을 사용합니다(64 비트 이상).
  • MySQL 또는 MariaDB에서는 DATE(날짜만 해당) 또는 DATETIME(날짜만 해당) 사용을 고려하세요. 및 시간)을 사용합니다.
  • 추가 해결 방법은 2038년 문제에 대한 Wikipedia 페이지를 참조하세요.
  • MySQL을 버전 8.0.28로 업데이트하거나

대안:

  • 데이터베이스에 큰 유형(예: 64비트)을 사용합니다.

잠재적인 무단 사용 사례:

  • MySQL DATETIME은 TIMESTAMP(1970-2038)보다 범위(1000-9999)가 더 좁으므로 생년월일 및 향후 날짜와 같이 2038년 이후의 날짜에 대해 잠재적인 문제가 발생할 수 있습니다.

개조 기존 애플리케이션:

  • TIMESTAMP를 사용하는 PHP 애플리케이션의 경우 열을 DATETIME으로 변환하는 것을 고려하세요. 이 변환을 실행하려면 답변 섹션에 제공된 단계를 따르십시오.

자원:

  • 2038년 문제(Wikipedia): https:// en.wikipedia.org/wiki/Year_2038_problem
  • 인터넷 30년 후에 종료됩니다: https://www.theregister.com/2022/08/06/year_2038_bug_web/

위 내용은 2038년 문제는 무엇이며 어떻게 피할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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