7

PHPで、ホスティングプロバイダーがどこにあるかをハードコーディングせずに、UTCで現在の時刻を取得するにはどうすればよいですか?

たとえば、私は次のことを試しました。

time() + strtotime('January 1, 2000')-strtotime('January 1, 2000 UTC')

実際のUTC時刻より1時間進んだ時刻を報告していることがわかります。2つの異なるタイムゾーンの2つの異なるホスティングプロバイダーでこれを試しましたが、同じ結果になりました。

UTC時刻を正確に取得するための信頼できる(そして、できればよりクリーンな)方法はありますか?

PHP 4.4.9に制限されているため、PHP5に追加された新しいタイムゾーンのものを使用できません。

前もって感謝します。

4

4 に答える 4

13
$time = new DateTime('now', new DateTimeZone('UTC'));
echo $time->format('F j, Y H:i:s');
于 2009-09-23T12:26:21.850 に答える
8

これは私にとってはうまくいくようです。もちろん、私のサーバーはすべてPHP 5を搭載しているので、PHP 4でテストする必要がありますが、マニュアルでは、これはPHP4で機能するはずだと述べています。

$t = time();
$x = $t+date("Z",$t);
echo strftime("%B %d, %Y @ %H:%M:%S UTC", $x);

初めて、time()とdate()の呼び出しの間で日付が変わる可能性があることを忘れました。

于 2009-09-23T04:46:55.143 に答える
0
$utcTtime = gmmktime();
$unixTimestamp = time();

gmmktime:GMT日付のUnixタイムスタンプを取得します

于 2009-09-23T12:31:51.023 に答える
0

これはphp4.4.9で機能しますか?

echo gmdate('Y-m-d H:i:s', time());

または、特定の日付にそれが必要な場合:

$time = strtotime('January 1, 2000 UTC');
if($time){
    echo gmdate('Y-m-d H:i:s', $time);
}
于 2013-10-01T09:51:46.387 に答える