2012-10-17 3 views
1

내가 제공 한 날짜/시간에 8601 날짜 문자열을 다시 포맷하는 방법 : 2012-10-14T06는 : 00PHP -이 형식으로 ISO를 사용자 정의 시간대

나는이 같은 데이터를 재 작업 할 수 있습니다 오전 6시

를 사용하여
<?php 
function formatDate($date, $format){ 
    $output = date($format, strtotime($date)); 
    return $output; 
} 
?> 

<?php echo formatDate('2012-10-14T06:00', 'g:ia'); ?> 

출력 : 매우 중요하지만, 어떻게 내가

date_default_timezone_set를 ('미국/로스 엔젤레스')를 사용하여 오프셋을 조정할 수 있습니다 오전 6시

;

또는

date_default_timezone_set ('유럽/암스테르담); (그들은 무엇을 선택) 사용자의 시간대로 설정되어

는 - 시간은 orginal 한 시간대 데이터 ('유럽/암스테르담) 그들이 자신의 기본 시간대를 설정한다면

제공하는 사용자 사이의 오프셋한다 다른 나라에서는 시간대 오프셋에 따라 오전 8시 또는 오전 4 시가 표시됩니다.

기본 시간대는 항상 XXXX-XX-XXTXX : XX 형식입니다.

어떤 도움을 크게

답변

3

DateTime 객체를 사용하여 감상 할 수있다. 수동으로 오프셋을 추출해도 낮 시간 절약 및 다른 단점은 고려되지 않습니다.

// use the the appropriate timezone for your stamp 
$timestamp = DateTime::createFromFormat('Y-m-d\TH:i', '2012-10-14T06:00', new DateTimeZone('UTC')); 
// set it to whatever you want to convert it 
$timestamp->setTimeZone(new DateTimeZone('Europe/Amsterdam')); 
print $timestamp->format('Y-m-d H:i:s'); 
관련 문제