web-dev-qa-db-ja.com

UNIXタイムスタンプは常にGMTですか?

UNIXタイムスタンプは常にGMTですか?

私はphp関数time()を実行しようとしました

そして、time()関数からUNIXタイムスタンプを変換しようとすると、出力がコンピューターの時間と似ていません。

ありがとうございました

36
bbnn

うん、UNIXのタイムスタンプは、UNIX時間のエポックから何秒経過したかを表しますGMT+0

54
zerkms

UNIXタイムスタンプ(別名Unixのエポック)は、1970年1月1日00:00:00 UTC(世界時)からの経過秒数を意味します。したがって、特定のTimeZoneで時刻が必要な場合は、それを変換する必要があります。

技術的には可能ですが、現在の時刻(またはその他の時刻)を取得する別の方法をお勧めします。たとえば、戻る前にローカルタイムゾーンを考慮している getdate などです。

7

はい、 time はUTCを返すことになっています。それを現地時間に変換したい場合は、...、うーん、考えさせてください..、はい、それだけです localtime :-)

これにより、個々のフィールドが分​​割された、より使いやすいフォームが得られます。

上記のPHP docの各リンクをたどってください。PHPにgmtimeと同等のものがあるかどうかはわかりません。


そして、余談ですが、man timetimeのマンページをWebで検索する際は十分に注意してください。期待どおりの結果が得られない可能性があります。あなた確かには、man自体のマンページ(man man)を探している場合、期待どおりの結果が得られません。

つまり、私とは違うものを探しているのでなければ:-)

6
paxdiablo

技術的には違います。

エポック時間は1/1/70 00:00:00からの平均経過秒数ですが、実際の "GMT"(UTC)はそうではありません。

[〜#〜] utc [〜#〜]回転する地球の速度の低下を考慮に入れるには、時間を数回変更する必要がありました。

誰もが書いたように、ほとんどの人はUTCでエポックを使用しています。

詳細は https://en.wikipedia.org/wiki/Unix_time で確認できます。

6
yonatanh

date_default_timezone_get() の戻り値を確認して、デフォルトのタイムゾーンを確認します。リンクには、値を変更する方法もリストされています。php.iniでdate.timezoneを設定することをお勧めします。

0
ScottR