테스트 사이트 - 개발 중인 베타 버전입니다

mktime() 2038-01-19 12:14:08 이후 표시가 불가능 ... 대안은? 채택완료

해피정 7년 전 조회 2,251

<?php

echo mktime('12','14','07','01','19','2038'); //  mktime(시,분,초,월,일,년)

?>

 

결과가 2147483647 이렇게 표시됩니다.

2038년 1월 19일 12시 14분 07초 까지는 mktime 표시가 됩니다.

 

<?php

echo mktime('12','14','08','01','19','2038'); //  mktime(시,분,초,월,일,년)

?>

2038년 1월 19일 12시 14분 08초 까지는 mktime 으로 요청하면 값을 반환하지 않습니다.

예전 cobol 시절의 2K 밀레니엄 버그같은 그런 거인걸까요?

 

mktime 은 2038년 1월 19일 12시 14분 07초 까지만 사용하고,

그 이후는 나몰라 ... 뭐 그런걸까요? 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
7년 전

mktime함수는 1970 1월 1일부터 인트형으로 저장이 되는 함수인데, 2038년이 되면 그 인트 자료형의 범위를 넘어서기 때문에 그렇습니다.

 

밀레니엄문제처럼 당시 만들던 프로그래머들이 먼 미래 일이기도 하고

 

그때쯤이면 알아서 해결하겠지~ 하고 냅둔 함수로 알고 있습니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해피정
7년 전
아, 그런사연이 있었군요
mktime 을 사용한 로직을 미리미리 변경해놔야 겠네요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인