2012-10-05 2 views
0

나는 그이CakePHP의 2 TIMEFORMAT

 //in the core file it set to UTC 
     debug(date_default_timezone_get()); 
     $currentTime = time(); //UTC 

     //CurrentTime in UTC 
     debug(date('Y-m-d H:i:s',$currentTime)); 

     $timepst = CakeTime::format('Y-m-d H:i:s', $currentTime, null, 'PST'); 
     $timejst = CakeTime::format('Y-m-d H:i:s', $currentTime, null, 'JST'); 

     //I'm trying to convert back the time from PST to UTC using PST time 
     $timeutc = CakeTime::format('Y-m-d H:i:s', strtotime($timepst), null, 'UTC'); 

     debug('PST : ' . $timepst); 
     debug('JST : ' . $timejst); 
     debug('UTC : ' . $timeutc); 

결과 같은 코드가 시간 형식에 문제가

'UTC' 

'2012-10-05 19:44:50' 

'PST : 2012-10-05 12:44:50' 

'JST : 2012-10-06 04:44:50' 

'UTC : 2012-10-05 12:44:50' 

되어 있고, 어떻게 다시 변환 PST 시간을 사용하여 와서 내 질문 UTC는 작동하지 않습니까? 어떤 도움이 필요하십니까?

기본적으로 사용자가 자신의 시간대 (날짜 입력)를 기반으로 무언가를 말하도록하고 싶지만 데이터베이스에 저장하려면 다시 UTC로 변환해야합니다.

답변

0

변환은 서버의 시간대와 param으로 CakeTime :: format()에 전달 된 사용자 시간대 간의 시간차를 기반으로 수행됩니다. CakeTime :: format()에 대한 3 번째 호출의 예제 코드에서는 사용자 시간대를 UTC로 전달하고 서버의 시간대도 UTC이므로 시간이 변경되지 않습니다.

+0

사용자 시간대를 설정 한 시간대로 전달할 수있는 방법은 무엇입니까? UTC가 아닙니다 (3 번째 호출부터 시작). – Harts

+0

질문을 이해할 수 없습니다. 세 번째 호출을 전달하는 시간이 PST 시간대에 대한 것이므로 예상 결과를 얻으려면 서버의 시간대를 PST로 설정해야합니다. – ADmad