So ermitteln Sie mit PHP, ob zwei Zeitstempel ein Tag sind: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Setzen Sie „int time_zone = 8, daily_reset_time = 5;“. 3. Übergeben Sie „bool IsTimeToReset(time_t last_reset_time, time_t cur_time ){...}“-Methode zur Umsetzung des Urteils.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.
Wie stellt PHP fest, ob zwei Zeitstempel am selben Tag sind?
Um festzustellen, ob zwei Zeitstempel am selben Tag sind
Ideenanalyse
Um festzustellen, ob zwei Zeitstempel nicht am selben Tag sind, müssen Sie nur die absoluten Sekunden jedes der beiden Tage durch 24 dividieren * 3600, um die Zeit von der Epoche bis zum heutigen Tag zu erhalten. Wenn nach wie vielen Tagen die Differenz zwischen den beiden Ergebnissen größer als 0 ist, bedeutet dies, dass sie nicht am selben Tag sind und zurückgesetzt werden müssen. Es sind jedoch zwei Faktoren zu berücksichtigen:
Erstens wird die aktuelle Zeit abzüglich des eingestellten Rücksetzzeitpunkts (z. B. 5 Uhr jeden Tag) berücksichtigt, da sie um 5 Uhr zurückgesetzt wird. Subtrahieren Sie 5 * 3600, um sicherzustellen, dass die Die aktuelle Uhrzeit ist größer oder gleich der Reset-Zeit. Der eingestellte Zeitpunkt ist 5 Uhr an diesem Tag.
Die Sekunde ist die absolute Sekunde plus der Teil des Zeitstempels, der der entsprechenden Zeitzone entspricht, sodass die erhaltene Zeit der Ortszeit entspricht. Wenn Sie beispielsweise keine Zeitzone hinzufügen, erhalten Sie die Anzahl der Tage seit 00:00:00 Uhr Greenwich Mean Time am 1. Januar 1970. Die Pekinger Zeit ist 8 Stunden vor der Greenwich Mean Time. Wenn es dann Greenwich Mean Time ist 16 Uhr in der US-amerikanischen Zeit entspricht null Uhr am nächsten Tag in Pekinger Zeit. Was wir zeitlich berechnen müssen, ist die Differenz in Tagen, die der Zeit in dieser Zeitzone entspricht, also müssen wir addieren die Zeitzone. Die resultierende Zeit ist time_zone * 3600
Code-Implementierung
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; }
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie in PHP, ob zwei Zeitstempel am selben Tag sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!