首頁  >  文章  >  後端開發  >  php怎麼判斷兩個時間戳記是不是一天

php怎麼判斷兩個時間戳記是不是一天

藏色散人
藏色散人原創
2022-11-06 10:17:042434瀏覽

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怎麼判斷兩個時間戳記是不是一天

本教學操作環境:windows7系統、PHP8.1版、Dell G3電腦。

php怎麼判斷兩個時間戳記是不是一天?

判斷2個時間戳記是不是同一天

思路分析

判斷2個時間戳記是否不在同一天,只需要將2天各自的絕對秒數除以24 * 3600得到從epoch到現在過了多少天然後兩個結果如果相差大於0,表示不是同一天,需要重置。但需要考慮2個因素:

一是當前時間減去設定的重置時間點(例如每天的5點),因為是5點重置,減去5*3600,確保當前的時間大於等於重置的時間點,即當天的5點。

二是絕對秒數加上對應的時區對應的那部分時間戳,這樣得到的時間是對應當地時間的。舉例來說,不加時區的時間,得到的是從格林威治時間1970年1月1日00:00:00以來的第幾天,北京時間比格林威治時間早8小時,那麼如果是格林威治時間的16點,對應的就是北京時間的第二天的零點,而時間上我們要算的就是對應這個時區的時間對應的天數的差值,所以要加上時區。導致的時間,即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怎麼判斷兩個時間戳記是不是一天的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn