1

unixtimeから1時間を削除する方法を教えてください。

UNIX時間を使用しているので、通常の時間に変換する前に1時間余分に削除する必要があります。これを行う方法をアドバイスしていただけますか?

また、UnixtimeはGMT時間の変更の影響を受けますか?

4

1 に答える 1

5

Unix タイムスタンプは秒単位で測定され、1 時間は 3600 秒 (60 分、それぞれ 60 秒 = 60*60 = 3600) であるため、次のように減算します。

$timestamp = time();
$timestamp_less_one_hour = $timestamp - 3600;

strtotime同じことを達成するために使用することもできます:

$timestamp_less_one_hour = strtotime('-1 hour', $timestamp);

または、$timestamp単に「今」の場合はstrtotime、2 番目のパラメーターなしで呼び出すことができます。

$timestamp_less_one_hour = strtotime('-1 hour'); // time() - 1 hour

代わりに GMT 時間を探しているようですが、GMT には夏時間 (DST) を含めることができ、PHP の「GMT」日付関数は実際には DST の概念がない UTC 時間を返します。幸いなことに、PHP を使用して DST であるかどうかを検出し、基本的に適切に調整することができます。

以下を使用して UTC 時刻を取得しgmdateます。

$utc_time = gmdate('U'); // return Unix seconds in UTC timezone

次を使用して DST かどうかを検出しIます。

$is_dst = gmdate('I'); // 1 when it's DST, 0 otherwise

gmdate('U')DST 中は GMT 時間を 1 時間遅らせます。したがって、DST の場合は秒または 1 時間を与える必要があるため+3600、これをまとめると、次のようになります。

$gmt_time = gmdate('U') + (3600*gmdate('I'));
于 2011-04-06T00:06:18.353 に答える