ホームページ  >  記事  >  バックエンド開発  >  PHPで2つのタイムスタンプが同じ日かどうかを判断する方法

PHPで2つのタイムスタンプが同じ日かどうかを判断する方法

藏色散人
藏色散人オリジナル
2022-11-06 10:17:042418ブラウズ

2 つのタイムスタンプが 1 日であるかどうかを判断する php メソッド: 1. php サンプル ファイルを作成します; 2. "int time_zone = 8, daily_reset_time = 5;" を設定します; 3. "bool IsTimeToReset(time_t last_reset_time, time_t cur_time){...}」メソッドを使用して決定できます。

PHPで2つのタイムスタンプが同じ日かどうかを判断する方法

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。

PHP は 2 つのタイムスタンプが同じ日かどうかをどのように判断するのでしょうか?

2 つのタイムスタンプが同じ日にあるかどうかを判断する

アイデア分析

2 つのタイムスタンプが同じ日にあるかどうかを判断するには、次のようにします。 2 日それぞれの絶対秒を 24 * 3600 で割って、エポックから現在までに経過した日数を取得します。2 つの結果の差が 0 より大きい場合は、それらが同じ日ではないことを示します。リセットされること。ただし、2 つの要素を考慮する必要があります。

まず、現在時刻から設定されたリセット時刻 (毎日 5 時など) を引いた値です。5 時にリセットされるため、5*3600 を引きます。現在の時刻がリセット時点 (当日の 5 時) 以上であることを確認します。

2 番目は、絶対秒に、対応するタイム ゾーンに対応するタイムスタンプの部分を加えたものであるため、取得された時刻は現地時間に対応します。たとえば、タイム ゾーンを追加しないと、1970 年 1 月 1 日のグリニッジ標準時 00:00:00 からの日数が得られます。北京時間はグリニッジ標準時より 8 時間進んでいます。次に、それがグリニッジ標準時である場合、米国時間の 16 時は、北京時間では翌日の 0 時に相当します。時間に関して計算する必要があるのは、このタイム ゾーンの時間に相当する日数の差です。タイムゾーン。結果の時間は time_zone * 3600 です。

コード実装

int time_zone = 8, daily_reset_time = 5;
time_t BetweenDays(time_t time1, time_t time2)
{
return (time1 + time_zone *3600)/3600/24 - (time2 + time_zone *3600)/3600/24;
}
/*
 * last_reset_time 为上次执行的每日重置时间
 * cur_time 为当前时间
 */
bool IsTimeToReset(time_t last_reset_time, time_t cur_time)
{
return BetweenDays(cur_time - 3600 * daily_reset_time, last_reset_time - 3600 * daily_reset_time) > 0;
}

推奨学習: "PHP ビデオ チュートリアル "

以上がPHPで2つのタイムスタンプが同じ日かどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。