2013-08-12 4 views
-1

데이터베이스는 GMT 시간이지만 실제 값은 위의 값인 YYYY-MM-DD HH:MM:SS(예 : 2013-04-14 % 2015 : 00 : 00)과 같은 값을 저장합니다. 날짜 및 시간 + 서버의 시간대 차이.시간대 시간대 추가 (GMT 값에)

$time_heard = '2013-04-14%2015:00:00'; 
$time_diff = date('p') 

$real_time = $time_heard + $time_diff ; 

echo $real_time ; 

어떻게하면됩니까? 감사합니다

답변

0

MySQL을 사용하는 경우 SELECT에서 CONVERT_TZ 기능을 바로 사용할 수 있습니다. http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_convert-tz

당신이 PHP에서 그것을 할 필요가 있다면 , 그것은 새로운 시간대로 표시해야 DateTime classoutput the datechanging the timezone 다음 creating a new DateTime with the timezone set to GMT에 의해 할 때 사용합니다. http://www.php.net/manual/en/timezones.php

또는 당신이 주장하는 경우에, 당신이 여기 date_parse_from_format()

을 사용할 수 있습니다 : 당신은 당신이 다른 영역을 찾을 수 있습니다 여기에

원하는 영역에 시간을 설정 date_default_timezone_set() 기능을 사용할 수 있습니다

+0

저는 PostgreSQL을 사용하고 있으며, 표준 시간대를 알지 못합니다 (설치가 완료된 위치가 다를 수 있으므로). 다른 문제는 $ time_heard 변수가 사용자 입력이 될 수도 있다는 것입니다. –

+0

그러면 PHP를 사용해야 할 것입니다. 그러나 '$ time_heard'는 DateTime 객체를 만들 때 사용자 입력으로 사용할 수 있습니다. 허용되는 형식을 사용해야합니다. 그리고 로컬 서버 시간대를 얻으려면 [date_default_timezone_get()] (http://php.net/manual/en/function.date-default-timezone-get.php) –

0

그것의 설명서입니다 : http://php.net/manual/en/function.date-parse-from-format.php

편집 : 쉬운 기능으로 다른 방법 :

$tmstamp = strtotime($date1) + strtotime($date2); 
echo date("YYYY-MM-DD HH:MM:SS", $tmstamp) ; 
+0

을 사용하여 날짜 구문 분석을 시도해 봅시다. addtion (배열이 아니라 찌름)이되기 전에 같이 다시 넣을 수 –

+0

다른 쉬운 방법으로 추가했습니다. –

+0

'2013-04-14 15:00:00'<< - 들었 시간 내 시간대가 아프리카/하르툼이므로 1 시간 차이가 있습니다. '1920-10-18 12:31:14'<< - 이번엔 무엇입니까 –