在PHP 中檢查日期範圍
在PHP 中,您可能會遇到需要確定特定日期是否在以下範圍內的情況日期。這通常用於有效性檢查或日程安排的應用程式。
問題:
您在嘗試使用以下方法檢查今天的日期是否位於兩個合約日期之間時遇到了問題以下程式碼:
$paymentDate = date('d/m/Y'); $contractDateBegin = date('d/m/Y', '01/01/2001'); $contractDateEnd = date('d/m/Y', '01/01/2015'); if ($paymentDate > $contractDateBegin && $paymentDate < $contractDateEnd) { echo "is between"; } else { echo "NO GO!"; }
但是,此程式碼未按預期運行,因此您不確定您要做什麼錯過了。
答案:
所提供代碼中的一個關鍵錯誤是 $ paymentDate 使用的日期格式不正確。為了有效地比較日期,必須將它們轉換為一致的格式,通常是“YYYY-MM-DD”格式。為此,您可以利用strtotime() 函數:
$paymentDate = date('Y-m-d'); $paymentDate = date('Y-m-d', strtotime($paymentDate));
此外,為了確保今天的日期在範圍內,請使用>= 和<= 而不是> 和<。這是因為您的程式碼目前排除了該範圍的最後一天。
下面更正的程式碼應該可以正常運作,以檢查今天的日期是否在合約日期之間:
$paymentDate = date('Y-m-d'); $paymentDate = date('Y-m-d', strtotime($paymentDate)); //echo $paymentDate; // echos today! $contractDateBegin = date('Y-m-d', strtotime("01/01/2001")); $contractDateEnd = date('Y-m-d', strtotime("01/01/2012")); if (($paymentDate >= $contractDateBegin) && ($paymentDate <= $contractDateEnd)) { echo "is between"; } else { echo "NO GO!"; }
注意:如果您的原始程式碼使用了不同的日期格式(例如“dd/mm/YYYY”),請務必使用以下命令將其轉換為“YYYY-MM-DD” strtotime()函數以確保準確比較。
以上是為什麼我的 PHP 程式碼無法準確檢查今天的日期是否在日期範圍內?的詳細內容。更多資訊請關注PHP中文網其他相關文章!