나는 가능한 다양한 시간대를 처리해야하는 웹 사이트를 개발 중입니다. 웹 사이트가 경매와 같이 시간이 많이 드는 이벤트를 주최하기 때문에 이것은 큰 문제가됩니다.서버와 클라이언트 사이의 시간대를 처리하는 방법은 무엇입니까?
서버의 모든 날짜/시간은 UTC로 표시됩니다. 데이터베이스는 모든 항목을 UTC 타임 스탬프로 저장합니다. PHP 기본 시간대는 UTC (date_default_timezone_set('UTC');
)로 설정됩니다.
이제 내 문제는 내가 단지 날짜를 표시하고 있는지, 더 중요한지, 사용자 입력으로부터 날짜/시간을 읽는지에 관계없이 사용자와 어떻게 상호 작용해야하는지입니다.
구체적인 예 :
- 경매 내가 UTC로 데이터베이스에 저장 기한을 가지고 있습니다.
- 웹 사이트에서 경매를 볼 때 자바 스크립트 타이머는
Date
개체를 사용하여 남은 시간을 계산합니다. 시간대를 자동으로 GMT + 0100 (현지 시간대)으로 변환합니다. 따라서 최종 기한이'2013-08-08 10:46:08'
(UTC) 인 경우 javascript 날짜 객체는Aug 08 2013 11:26:15 GMT+0100 (GMT Standard Time)
을 반환합니다. - 현재 시간이 11:46:08보다 큰 경우 타이머는 남은 시간이 00:00 (정확함)라고 표시합니다.
하지만 입찰을 삽입 할 경우, 서버가
MySQL INSERT
의 조건 때문에 받아들이는true
로 평가INSERT를 입찰 ... ... 그리고 auction_deadline> INTO NOW() ...
시간대의
(때문에 auction_deadline = NOW '2013-08-08 10:46:08'
와() = '2013-08-08 10:26:50'
)
이 모든 미신적 점보는 내 머리를 녹. 내가 여기서 무엇을 놓치고 있니? 나는 모든 날짜/시간을 UTC로 데이터베이스에 저장하는 것이 최선이라는 것을 거의 확신합니다. 나는 사용자와 데이터베이스 사이에서 어떻게 처리해야하는지 명확하게 생각할 수 없다.
내 질문을 명확하게하기 위해 몇 가지 코드가 필요하면 알려주십시오. –