php判斷兩個時間戳記是不是一天的實作方法:1、建立一個php範例檔;2、設定「int time_zone = 8, daily_reset_time = 5;」;3、透過「bool IsTimeToReset(time_t last_reset_time, time_t cur_time){...}”方法實作判斷即可。
本教學操作環境: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中文網其他相關文章!