2011-01-21 9 views
3

これは愚かな質問だと思いますが、答えが見つからないようです。UNIXタイムスタンプの正しい時刻を取得する

私は、このタイムスタンプを持っている:私は私のPHPスクリプトで1295598602.

$日付=日付( 'Y-M-D'、1295598602); $時間=日付( 'H'、1295598602)。 ':00';

これが返されます。

日:2011-01-21
時間:3:00

を今、私はこれをテストするためにオンライン変換サイトに行ってきました。私はthis oneを使用しました。 しかし、正しいです1 8時30分02秒GMT今

、金、2011年1月21日、このタイムスタンプ値のために、それは

ているようですか? GMT/UTCで

+3

それはそうでもない、サーバーのタイムゾーンに依存し、オンラインサービス –

答えて

5

使用正しいタイムゾーン:

>> date_default_timezone_get(); 
'UTC' 
>> date('Y-m-d h:i:s',1295598602); 
'2011-01-21 08:30:02' 
>> date_default_timezone_set('CET'); 
true 
>> date('Y-m-d h:i:s',1295598602); 
'2011-01-21 09:30:02' 
>> date_default_timezone_set('UTC'); 
true 
>> date('Y-m-d h:i:s',1295598602); 
'2011-01-21 08:30:02' 
4

(彼らはほとんどbut not quiteまったく同じだ)そのタイムスタンプが実際に金、2011年1月21日8時30分02秒GMTです。

タイムゾーンが異なるが、常にGMTが必要な場合は、date()の代わりにgmdate()関数を使用する必要があります。 date()機能の説明によれば

+0

ます。ちょうど正しいタイムゾーンを設定してください。 – Mchl

+0

date_default_timezone_set()は、PHP 5.1.0以降でのみ利用可能です。 – Alnitak

+0

真剣に? PHP 5.2は、開発者のサポートを終了しました。まだ誰かが5.1の下にいる場合は、最初にアップグレードを検討する必要があります。 – Mchl

0

タイムスタンプはオプションであり、 デフォルト時間の値()。

そして、time()によれば、GMTタイムスタンプを返します。

PHPはあなたのタイムゾーンに変換しますが、onlineconversion.comは変換しません。

1

どちらが正しいです。コードスニペットでPHPはタイムゾーンを調整します。適切な未調整値を得るには、date_default_timezone_set('UTC');を試してください。

1

もう1つの方法は、スクリプトのデフォルトのタイムゾーンを設定することです。例えば

date_default_timezone_set('Europe/London'); 
$timestamp = '1295598602'; 
echo date('Y-m-d H:i:s', $timestamp); 

はあなたのオンライン変換ツールが表示されているのと同じ結果になるだろう。

PHPにはタイムゾーンに関連する関数がいくつかあります。これにより、表示されるタイムゾーンを変更することができます。

あなたはあなたのオプションのリストについては、PHPのドキュメントを確認することができます。http://www.php.net/manual/en/ref.datetime.php

+2

'Europe/London'タイムゾーンは夏時間を尊重します。代わりに 'UTC'または' GMT'を使用してください。 – Mchl

関連する問題