2010-12-16 17 views
11

私はUS/Easternタイムゾーンの現在時刻を取得したいと思います。どのように私はそれを達成するだろう。php取得US/Eastern現在の時間

私は次のコードを試しましたが、システムの時刻が表示されています。

<?php 
    date_default_timezone_set('US/Eastern'); 
    $currenttime = date('h:i:s:u'); 
    list($hrs,$mins,$secs,$msecs) = split(':',$currenttime); 
    //print "&time2=".$secs."&time1=".$mins."&time0=".$hrs; 
?> 

私はフラッシュでこのスクリプトを使用していますので、「印刷」行がコメントアウトされています。

+1

'echo date_default_timezone_get()'を呼び出して、それがエコーすることがありますか? – Yahel

+0

'US/Eastern'は推奨されなくなりましたが、 '夏時間'ルールに従います。年に応じてGMT-04:00またはGMT-05:00のいずれかです。具体的にEDT(Eastern Daylight Time、Summer)またはEST(Eastern Standard Time、Winter)が必要な場合は、3文字の頭字語またはオフセットを直接指定する必要があります。 –

答えて

17
<?php 
    echo date_default_timezone_get(); 
    $currenttime = date('h:i:s:u'); 
    list($hrs,$mins,$secs,$msecs) = split(':',$currenttime); 
    echo " => $hrs:$mins:$secs\n"; 

    date_default_timezone_set('US/Eastern'); 
    echo date_default_timezone_get(); 
    $currenttime = date('h:i:s:u'); 
    list($hrs,$mins,$secs,$msecs) = split(':',$currenttime); 
    echo " => $hrs:$mins:$secs\n"; 

    date_default_timezone_set('America/New_York'); 
    echo date_default_timezone_get(); 
    $currenttime = date('h:i:s:u'); 
    list($hrs,$mins,$secs,$msecs) = split(':',$currenttime); 
    echo " => $hrs:$mins:$secs\n"; 

?> 

(ベルリン)ここで働いているようだ:US/Easternが廃止されましたように

Europe/Berlin => 01:42:42 
US/Eastern => 07:45:18 
America/New_York => 07:45:18 
+0

私は混乱を招いていた間違いが1つありました。私は日付形式で 'h'の代わりに 'H'を使用しなければなりませんでした。申し訳ありませんguyz ...とありがとうございます。特に、date_default_timezone_get()の提案が私を助けてくれたMYYN ... – booota

+0

廃止されました:機能分割() –

4

http://www.php.net/manual/en/timezones.php

が見えます。 America/New_York

EDITを試してみて、これはおそらくあなたの問題を解決しませんが、とにかくそれを行う必要があります。非難されているということは、将来、それを削除できることを意味します。

2

最も簡単な方法は、おそらく現在のGMTのUnix timestampを取得するためにgmmktime()を使用し、次にそれからsubtract 5 hoursを取得することです。そうすれば、サーバーがどこにあっても東部時間を得ることができます。

+1

東部標準時がEastern Daylight Time(-4 GMT)に切り替わるとどうなりますか?これは本当に持続可能な修正ではありません。 – Yahel

+0

できません。 – beginner

4
$amNY = new DateTime('America/New_York'); 
$estTime = $amNY->format('h:i:s:u'); 

またはあなたがphpの5.4を使用して

estTime = (new DateTime('America/New_York'))->format('h:i:s:u'); 

date_default_timezone_set()の上にされている場合は、スクリプト全体に影響を与えますし、慎重に

0

私はちょうど

<?php 
Date_default_timezone('est'); 
$lv=date('l, F jS, Y, g:I:s A T,$ir['laston']); 
?> 
<b>last visit</b> <em>$lv.</em> 
を使用して使用する必要があります

私が取り組んでいるゲームで完璧に動作するようです。あなたが$ ir ['laston']を削除しても問題ないはずです。