unixtimeから1時間を削除する方法を教えてください。
UNIX時間を使用しているので、通常の時間に変換する前に1時間余分に削除する必要があります。これを行う方法をアドバイスしていただけますか?
また、UnixtimeはGMT時間の変更の影響を受けますか?
unixtimeから1時間を削除する方法を教えてください。
UNIX時間を使用しているので、通常の時間に変換する前に1時間余分に削除する必要があります。これを行う方法をアドバイスしていただけますか?
また、UnixtimeはGMT時間の変更の影響を受けますか?
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'));