2016-03-30 19 views
1

PHP date()ドキュメントは言う:日付()関数

スタンプ タイムスタンプが与えられていない場合は、オプションのタイムスタンプパラメータは、現在のローカル時刻にそのデフォルト整数のUnixタイムスタンプです。 つまり、デフォルト値はtime()です。

私は現在、UTC + 2であるベオグラードにあるサーバー(php.iniのタイムゾーンは、 "ヨーロッパ/ベオグラード" である)を使用しています:今、私はUTC時刻を取得したいと思い

echo date('F j, Y, H:i - e') // result => March 30, 2016, 18:22 - Europe/Belgrade 

を。

echo date('F j, Y, H:i - e', time()); // result => March 30, 2016, 18:22 - Europe/Belgrade 

が、結果は同じです:私たちはUTC時間)(常にデフォルト値をその時間を知っていて、それがすべてのサーバーで同じなら、私はUTC時刻を取得するために、これを行うことができるはずです。私はMarch 30, 2016, 16:22 - UTCを得るはずだった。ドキュメントでは、それは言う:

オプションのタイムスタンプパラメータは整数のUnixタイムスタンプである現在の現地時間に デフォルトのタイムスタンプ

与えはありませんが、それは与えられたなら、それはデフォルトの必要がある場合与えられたものに、そうではありませんか?

答えて

2

date('F j, Y, H:i - e', time());では、time()は、現在のサーバー時刻に解決していますが、最初のコードからはMarch 30, 2016, 18:22 - Europe/Belgradeです。したがって、本質的に、あなたのコードはまだ同じです。 date('F j, Y, H:i - e' [, $timestamp = time()])は、第2パラメータがないので、date('F j, Y, H:i - e', time());と扱われます。 UTC時刻を取得するには、私はあなたが echo gmdate('F j, Y, H:i - e'); //will output March 30, 2016, 16:22 - UTC を使用することをお勧めしますむしろ

1

うん、あなたは時間を取得してからの時間を取得したいところはどこでも(あなたのケースではアジア)のタイムゾーンを設定することができ、@KBJの答えに同意しましたか。
date_default_timezone_set( 'Asia/Kolkata');
$ date = date( 'm-d-Y');