-
[PHP] DateTime 클래스 사용법과 주의할 점 (feat. Timestamp)프로그래밍 언어/PHP 2022. 9. 17. 15:18
해당 포스팅은 PHP 에서 DateTime 클래스의 Timestamp 메서드를 사용하여 UnixTimestamp 로 변경 시
마주할 수 있는 문제에 대한 포스팅입니다.내가 유지보수하고 있는 PHP로 된 프로젝트에서 구매기록이 실제 DB 레코드와 다르게 나타나는 현상이 있었다.
해당 로직의 위치를 찾은 결과, DateTime 클래스를 생성해서 Timestamp 로 변환하고 있었고
변환된 Timestamp 를 기준으로 데이터를 조회하고 있었는데 눈으로는 아무 문제가 없어보였다.
혹시 Timestamp 로 변환하면서 날짜값이 잘못 들어간 것은 아닐까 싶어
아래와 같이 PHP Online Editor 에서 해당로직을 구현해도 아무 문제가 없어보였다.
분명 UnixTimestamp 로 변환된 값을 기준으로 조회를 하여 데이터를 받아오는데 왜 실제 쿼리결과와 다른 것일까..
위에 첨부된 Online Editor 의 출력결과를 보면 DateTime 객체에 UTC 라는 값이 포함된 것이 보인다.
해당 값을 KST 로 바꾸어 보았다....! 😨😨😨
DateTime 객체를 생성할 때, 뒤에 타임존 옵션을 주지 않으면 실행되는 컴퓨팅 시스템의 타임존을 디폴트 옵션으로 인식하게 되는 것이었다..
실행되는 어플리케이션은 일본에서 실행되고 있었기에, 일본의 TimeZone 을 따라갔고
그 결과 실제 필요한 DB 레코드와 상이한 레코드들이 반환되는 것이었다.# Reference
728x90'프로그래밍 언어 > PHP' 카테고리의 다른 글
[PHP] Getting last key of array (0) 2023.10.02