2012-04-08 5 views
2

이것을 고려하십시오. 내 서버에서, 나는 (UTC/GMT) TIMESTRING과 같이 변환 :서버의 타임 스탬프를 변환하면 PHP와 MySQL에서 다른 결과가 나타납니다

strtotime('Fri Feb 18 21:08:38 +0000 2011') 

내 서버는 동일한 반환, 내가 테스트 한 모든 unixtimestampconverters 때문에,

1298063318 

이 올바른지를 반환합니다. 그리고 그 반대도 마찬가지입니다. 날짜는 아니지만 시간 소인을 삽입하면 위에 주어진대로 시간 소절이 반환됩니다. 내 서버에 타임 스탬프를 변환 할 경우 그러나는 :

2011-02-18 22:08:38 
:

date("Y-m-d H:i:s", 1298063318); 

내가 다시 (있는 '금 2월 18일 21시 8분 38초 0000 2011') 예상보다 다른 날짜를 얻을 수

그래서 한시간 떨어져 있습니다. 이것은 아마도 내 서버의 시간대가 Europe/Paris로 설정되어 있기 때문에 타임 스탬프를 UTC/GTM + 1로 변환하기 때문일 수 있습니다.하지만 MySQL이 동일한 서버에서 실행되어 동일한 시간대를 사용하면 다른 결과가 다시 나타납니다.

SELECT FROM_UNIXTIME(1298063318) = 2011-02-18 22:08:15 

즉, 18 초가 아닙니다. 왜 누군가가 설명 할 수 있습니까?

답변

4

MySQL의 경우 날짜 기능에 leap second 수정이 사용됩니다 (MySQL Documentation). PHP 날짜 함수의 경우 윤초가 고려되지 않습니다. 이런 이유로 24 초의 차이가납니다. http://pumka.net/2010/10/24/why-mysql-timestamp-is-24-seconds-different-from-php/

PS :

당신은 당신의 문제를 해결하기 위해 다음과 같은 시도 할 수 있습니다. 38 - 15 = 23

+0

PS xD의 경우 가능한 한 두 배 upvote 할 것입니다. 어떻게 오산 했습니까?! 무거운 아침 식사 야. – Pr0no

관련 문제