2010-05-28 5 views
1

나는 UTC 시간에 나에게 보내지는 시간이있다. 그러나 나는 이스트 코스트 시간 (EST/EDT)에서 그 날의 바깥 쪽 가장자리를 조정하려고한다. 즉, 사용자가 EDT/EST 중심 날짜를 입력하고 UTC 올바른 날짜로 쿼리하도록 할 수 있습니다.PHP 시간대 조정

$start_date$end_date은 GET 변수를 통해 전달 된 MM/DD/YYYY 형식 날짜입니다.

$start_date = date('Y-m-d 00:00:00', $start_date); 
$end_date = date('Y-m-d 23:59:59', $end_date); 

이 날짜 시간 UTC 시간에 저장되어있는 데이터베이스 쿼리에 사용하기위한 것입니다.

그래서 일광 절약 시간제에 따라 오후 8시 또는 오후 7시에 시작일을 정하고 일광 절약 시간제에 따라 다시 시작하는 오전 7시 59 분 59 초 또는 오후 6시 59 분 59에 종료일을 지정하고 싶습니다.

어떻게하면됩니까? 당신이 할 수있는 MySQL의에서

+0

어떤 데이터베이스를 사용하고 있습니까? 예를 들어, Postgres에는 "시간대가있는 타임 스탬프"라는 필드 유형이 있습니다. 데이터베이스가 모든 시간대 변환을 처리합니다. – Kenaniah

+0

[date_default_timezone_set()] (http://fr.php.net/manual/en/function.date-default-timezone-set.php) 기능을 확인 했습니까? –

답변

0

다음이 데이터에서 오는 어떤 시간대 알고 있다면

SELECT * FROM tablename WHERE date = DATE_SUB('2010-06-17 00:00:00',INTERVAL 4 HOUR); 
2

, 당신은 같은 것을 할 수 있습니다 : $의 날짜가 유효한이

$userTimezone = new DateTimeZone('America/New_York'); 
$systemTimezone = new DateTimeZone('Europe/London'); 

$ts = new DateTime($datetime, $userTimezone); 
$ts->setTimezone($systemTimezone); 

return $ts->format('Y-m-d H:i:s'); 

인 경우 thse 규칙에 따라 날짜 형식 - http://web2project.net/ - - 사용자의 선택 timezon에서 날짜를 얻을 이것은 우리가 web2project에서하는 일의 핵심은 http://www.php.net/manual/en/datetime.construct.php

입니다 e하지만 GMT/UTC로 저장하십시오.