我正在爲無線電臺的PHP解決方案工作,此時需要我確定當前時間(「H:I」格式)是否在設定的時間範圍內。使用不同日期和時區計算PHP時間
時間表包含2小時的間隔(從12個午夜或1am開始)。此時間表可根據用戶選擇的時區(或默認設置)更改。
我遇到的問題是確定當前時間是否在這些時間之間。例如,凌晨2點是00:00到02:00,04:00等。
最終,我想強調當前時間下降的時間範圍。
我很抱歉,如果我不清楚我已經放入的任何東西,我可以進一步解釋,如果有必要。
我正在爲無線電臺的PHP解決方案工作,此時需要我確定當前時間(「H:I」格式)是否在設定的時間範圍內。使用不同日期和時區計算PHP時間
時間表包含2小時的間隔(從12個午夜或1am開始)。此時間表可根據用戶選擇的時區(或默認設置)更改。
我遇到的問題是確定當前時間是否在這些時間之間。例如,凌晨2點是00:00到02:00,04:00等。
最終,我想強調當前時間下降的時間範圍。
我很抱歉,如果我不清楚我已經放入的任何東西,我可以進一步解釋,如果有必要。
使用DateTime和DateInterval類:http://hu1.php.net/datetime。我不認爲不同的日子和時區是他們的問題...
對不起,我沒有說清楚。我需要判斷日期是否在第二天(或部分),例如,下午10點到12點,晚上11點到凌晨1點。例如,在確定晚上8點 - 晚上10點時,我的計算結果很好。 – HeartOfScotland
@HeartOfScotland - 如果你在用戶的時區測試你的開始時間的日期以及結束時間的日期,那麼你可以看到它是否跨越了午夜。如果日期相同,則不會。結合上面的類,你應該有你的答案。 – Floris
謝謝大家 - 我爲如此不確定而道歉。我使用了PHP.net網站上詳細介紹的DateTime類。 通過將用戶指定的時區與歐洲/倫敦進行比較,然後將輸出重新格式化爲H:i,我可以適當地比較時間。 – HeartOfScotland
我們可以看到你用來計算的片段嗎?根據你的時間計算,你總是可以使用[mktime](http://ie.php.net/manual/en/function.mktime.php)將其轉換爲unix時間戳,然後找到一個範圍可能會更簡單。 – d3c0y
請更具體。特定日期的時間表是什麼?或者這是一個重複的時間表?你如何從用戶那裏獲取時區?他們是否選擇了像「America/New_York」這樣的實際時區,或者他們是否選擇了像UTC-05:00這樣的偏移量?你在問時區調整嗎?或範圍查詢?或兩者?根據當前的措辭,我可以建議的唯一事情是,在處理時間時,應該使用半開間隔,如'[00:00,2:00]'。 2:00不在該間隔內,它屬於下一個。 –