로 연결 필요와 날짜가 올바른 것 같습니다 (Y-m-d g:i:s
으로 서식 됨).통과 trunc_date 포스트 그레스 타임 스탬프 내가 포스트 그레스에서 다음 SQL 쿼리를 사용하고 잘못된 날짜
그러나 PHP로 실행하면 날짜 대신 Postgres가 타임 스탬프를 반환합니다.
따라서 PHP date
에서 해당 타임 스탬프를 사용하면 전체 날짜가 올바르지 않습니다. 예를 들어
:
포스트 그레스가로 표시되는 첫 번째 행 :
"2013-08-01 00:00:00, 36, 1"
하지만 PHP는 수신 :
을 :"1375315200000, 36, 1"
내가해야 할 때
echo date("Y-m-d", 1375315200000);
출력은 : 나는, 아마도 패딩 문제라고 생각
45552-01-02
대신 처음에는
2013-08-01
echo date("Y-m-d", 1375315200);
것을 반환 :
내 질문에
2013-07-31
은 다음과 같습니다
1) 그것은 단지 우연의 일치인가 후 그 3 개의 0을 버리면, 타임 스탬프는 데이터베이스에 저장된 실제 날짜보다 하루 앞입니다.
2) 왜 Postgres가 타임 스탬프를 올바르게 해석하는지; 반면 PHP는 그렇지 않습니까? 문서에 따르면 Postgres 타임 스탬프는 유닉스 타임 스탬프 형식이어야합니다.
여기에 시간대 변환으로 의심되는 항목이 있습니다.서버에서'TimeZone'을'UTC'로 설정 했습니까? 서버 시간대가 변경됩니까? 해당 필드가'timestamp' 또는'time zone with time zone '타입입니까? –
그게 문제 일 수 있다고 생각합니다. 데이터베이스가 아마존에 있는데, 나는 웹 서버가 애틀란타에있는 반면 시애틀에있는 시간대라고 생각합니다. 그런데 타임 스탬프에서 3 개의 0을 버려야하는 이유는 무엇입니까? Postgres의 타임 스탬프가 밀리 세컨드에 있기 때문입니까? 나는 그것이 유닉스 타임 스탬프와 같다고 생각했다. – ILikeTacos
postgres가'2013-08-01 00 : 00 : 00'을 보내면 PHP가받는 것입니다. PHP가'1375315200000'을 받았다고 생각한다면, 약간의 코드, 이상적으로는 재현 가능한 테스트 케이스로 설명하십시오. –