2013-12-17 5 views
0

GMT 날짜 시간을 IST 날짜로 변환하고 싶습니다. 그 목적을 위해 코드를 시도했지만 원하는 결과를 얻지 못했습니다.GMT 날짜 시간을 IST로 변환하고 싶습니다. 날짜 시간

function ConvertGMTToLocalTimezone($gmttime,$timezoneRequired) 
    { 
     $system_timezone = date_default_timezone_get(); 

     date_default_timezone_set("GMT"); 
     $gmt = date("Y-m-d h:i:s A"); 

     $local_timezone = $timezoneRequired; 
     date_default_timezone_set($local_timezone); 
     $local = date("Y-m-d h:i:s A"); 

     date_default_timezone_set($system_timezone); 
     $diff = (strtotime($local) - strtotime($gmt)); 

     $date = new DateTime($gmttime); 
     $date->modify("+$diff seconds"); 
     $timestamp = $date->format("m-d-Y H:i:s"); 
     return $timestamp; 
    } 

$ISTtime=ConvertGMTToLocalTimezone('Tue, 17 Dec 2013 07:23:56 +0000','Asia/Calcutta'); 
echo $ISTtime; 

결과 : 내가 잘못 2013년 12월 17일 18시 34분 2초

을 뭐하는 거지?

답변

1

당신은 단순히이하지 않는 이유 :

$timestamp = strtotime('Tue, 17 Dec 2013 07:23:56 +0000'); 
date_default_timezone_set("Asia/Calcutta"); 
echo date('r', $timestamp); 

출력

Tue, 17 Dec 2013 12:53:56 +0530 
0

이 시도 할 수, 당신은 사용할 수 있습니다 $new = new DateTimeZone('Asia/Kolkata');//IST

$new = new DateTimeZone('Asia/Kolkata');//IST 
    $date = new DateTime(gmdate("m/d/Y H:i:s"), 'Tue, 17 Dec 2013 07:23:56 +0000'); 
    $date->setTimezone($new); 
    echo $date->format('m-d-Y H:i:s'); 
+0

당신은 gmdate() 또는 날짜를 사용할 필요가 없습니다() DateTime. – vascowhite

0

이 사용 사소한 훈련이다 dateTime 수업 : -

function ConvertGMTToLocalTimezone($gmttime,$timezoneRequired) 
{ 
    $date = new \DateTime('Tue, 17 Dec 2013 07:23:56 +0000'); 
    $date->setTimeZone(new \DateTimezone($timezoneRequired)); 
    return $date->format('D, d M Y H:i:s O'); 
} 

$ISTtime=ConvertGMTToLocalTimezone('Tue, 17 Dec 2013 07:23:56 +0000','Asia/Calcutta'); 
echo $ISTtime; 

출력 : -

Tue, 17 Dec 2013 12:53:56 +0530 

See it working

이있는 경우 PHP> = 5.4 this will work -

function ConvertGMTToLocalTimezone($gmttime,$timezoneRequired) 
{ 
    return (new \DateTime('Tue, 17 Dec 2013 07:23:56 +0000'))->setTimeZone(new \DateTimezone($timezoneRequired))->format('D, d M Y H:i:s O'); 
} 
관련 문제