Ich versuche ein Skript zu schreiben, das überprüft, ob das aktuelle Datum / die aktuelle Uhrzeit nach dem liegt 05/15/2010 at 4PM
Wie kann ich die date () -Funktion von PHP verwenden, um diese Prüfung durchzuführen?
Da PHP> = 5.2.2 ist, können Sie die DateTime
Klasse als solche verwenden:
if (new DateTime() > new DateTime("2010-05-15 16:00:00")) {
# current time is greater than 2010-05-15 16:00:00
# in other words, 2010-05-15 16:00:00 has passed
}
Die an den DateTime-Konstruktor übergebene Zeichenfolge wird gemäß diesen Regeln analysiert .
Beachten Sie, dass es auch möglich ist, time
und strtotime
Funktionen zu verwenden. Siehe Originalantwort .
new DateTime('2010-05-15')
ist nur ein Beispiel. Dies kann ein beliebiges DateTime-Objekt sein, das Sie zuvor initialisiert haben.$object
handelt sich um ein DateTime-Objekt, das ich verwendet habeif (new DateTime() > $object) {}
und das falsch funktioniert. Funktioniert aberif (time() > $bject->getTimeStamp()) {}
korrekt. @ Salman AEs gibt auch die DateTime- Klasse, die eine Funktion für Vergleichsoperatoren implementiert.
quelle
Überprüfen Sie die PHP-Funktion
strtotime
, um Ihr festgelegtes Datum / Ihre Uhrzeit in einen Zeitstempel umzuwandeln: http://php.net/manual/en/function.strtotime.phpWenn Sie
strtotime
Ihr Datums- / Zeitformat nicht richtig verarbeiten können ("16:00 Uhr" funktioniert wahrscheinlich, aber nicht "um 16:00 Uhr"), müssen Sie Zeichenfolgenfunktionen verwenden, z. B.substr
um Ihr Format zu analysieren / zu korrigieren und Ihren Zeitstempel abzurufen eine andere Funktion, zmktime
.Vergleichen Sie dann den resultierenden Zeitstempel mit dem aktuellen Datum / der aktuellen Uhrzeit (
if ($calulated_timestamp > time()) { /* date in the future */ }
), um festzustellen, ob das eingestellte Datum / die eingestellte Uhrzeit in der Vergangenheit oder in der Zukunft liegt.Ich schlage vor, das PHP-Dokument über Datums- / Zeitfunktionen zu lesen und mit einem Teil Ihres Quellcodes hierher zurückzukehren, sobald Sie nicht weiterkommen.
quelle
quelle
$myDate
es gleich sein wirdstring (0) ""
.