2011-03-28 35 views

答えて

23

gmdate機能が利用可能であるが。 PHP 5.2以上を使用している場合は、DateTimeオブジェクトの使用を検討してください。

ここではDateTimeオブジェクトを使用して

$date = new DateTime('2011-01-01', new DateTimeZone('GMT')); 
$date->setTimezone(new DateTimeZone(date_default_timezone_get())); 

だけの手続きのように、自分の日時を作成することができます... GMT

$date = new DateTime(); 
$date->setTimezone(new DateTimeZone('GMT')); 

とバックデフォルトのタイムゾーンにに切り替えるためのコードですインスタンスへの参照を保持している点を除いて、

// Get a reference to Christmas of 2011, at lunch time. 
$date = new DateTime('2011-12-25 13:00:00'); 

// Print the date for people to see, in whatever format we specify. 
echo $date->format('D jS M y'); 

// Change the timezone to GMT. 
$date->setTimezone(new DateTimeZone('GMT')); 

// Now print the date/time it would in the GMT timezone 
// as opposed to the default timezone it was created with. 
echo $date->format('Y-m-d H:i:s'); 

// Just to show of some more, get the previous Sunday 
$date->modify('previous Sunday'); 

手続き型関数よりもはるかに読みやすい関数を使用できます。


アメリカにごアジア/コルカタを使用してGMTにタイムゾーンから

$melbourne = new DateTimeZone('Australia/Melbourne'); 
$gmt = new DateTimeZone('GMT'); 

$date = new DateTime('2011-12-25 00:00:00', $melbourne); 
$date->setTimezone($gmt); 
echo $date->format('Y-m-d H:i:s'); 
// Output: 2011-12-24 13:00:00 
// At midnight on Christmas eve in Melbourne it will be 1pm on Christmas Eve GMT. 

echo '<br/>'; 

// Convert it back to Australia/Melbourne 
$date->setTimezone($melbourne); 
echo $date->format('Y-m-d H:i:s'); 

を変換する

明示的な例/ニューヨーク

date_default_timezone_set('Asia/Kolkata'); 
$date = new DateTime('2011-03-28 13:00:00'); 
$date->setTimezone(new DateTimeZone('America/New_York')); 
echo $date->format("Y-m-d H:i:s"); 
//Outputs: 2011-03-28 03:30:00 
+0

ありがとうございますjcob ......しかし、どのように正確に動作するいくつかの例を投稿することができます............ – 0001

+1

@ 0001いくつかの例で更新。 – Jacob

+0

あまりにも多くのjcobに感謝します......しかし、私はここで混乱しています........あなたの例が私の質問で私を助ける方法......? – 0001

4

gmdate functionを使用してGMT時間に変換します。例えば

$d = '2011-03-28 12:05:20'; 
$gmt = gmdate('Y-m-d H:i:s',strtotime($d)); 
+0

に与えられた例は、 '2013-07-03 16:00 IST '、私は間違った日付を取得しています – lalith458

0

// GMT

にローカル時間に変換
public function convertTime($timezone,$time){ 
     $selectedtime = date("Y-m-d H:i",strtotime($time)); 
     $date = new DateTime($selectedtime, new DateTimeZone($timezone)); 
     $date->setTimezone(new DateTimeZone('GMT')); 
     $convertedtime = strtotime($date->format('Y-m-d H:i')); 
     return $convertedtime; 
    } 
関連する問題