PHP – Prüfen, ob ein Datum zwischen zwei anderen Daten liegt
Frage:
A Der von Stack Overflow abgerufene Codeausschnitt wurde geändert, um zu prüfen, ob das heutige Datum innerhalb eines bestimmten Bereichs liegt. Der geänderte Code funktioniert jedoch nicht wie vorgesehen.
$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!"; }
Antwort:
Um das Problem zu beheben, sollte zur Konvertierung die PHP-Funktion strtotime() verwendet werden die Daten in ein Zeitstempelformat um. Dadurch wird sichergestellt, dass die Daten basierend auf ihren Werten als Zeitstempel korrekt verglichen werden.
$paymentDate = date('Y-m-d'); $paymentDate = date('Y-m-d', strtotime($paymentDate)); $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!"; }
Hinweis:
Um sicherzustellen, dass das heutige Datum in den Vergleich einbezogen wird, verwenden Sie > ;= und <= statt > und <.
Das obige ist der detaillierte Inhalt vonWarum prüft mein PHP-Code nicht korrekt, ob ein Datum zwischen zwei anderen Datumsangaben liegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!