PHP: Prüfen ob Datum innerhalb 30 Tage liegt.

Gast #6110070
Lesenswert?

Ich bin so gerade ein bissle am verzweifeln. :-D

Ich habe ein Datum in einer SQL liegen im Format DATE mit z.b. 
2020-01-24. Nun möchte ich dieses Datum prüfen, ob es in den nächsten 30 
Tagen ist.

Ich scheitere aber :-D
1
if( strtotime($row['prüftermin']) > strtotime('-30 days') ) 
2
{
3
   echo "Innerhalb 30 Tage";
4
} else {
5
            
6
   echo "Nicht innerhalb 30 Tage";
7
}

Mit obigen Code zeigt er mir alle Daten innerhalb der Range, obwohl die 
Daten noch in 2 Jahren sind etc...

Wo liegt da mein Fehler?

PHP Version ist 7.4.1
Persönliche Seite #6110076
Lesenswert?

1. Hast du die Ergebnisse der strtotime-Aufrufe mal getestet?

2. "innerhalb" der nächsten 30 Tage bedeutet:
  a) später als jetzt
  UND
  b) früher als in 30 Tagen

Du prüfst vermutlich "später als vor 30 Tagen"



Ich würde das Unix-Datum des Prüftermins in einer Variable speichern, 
die restlichen Vergleiche dann ohne strtotime mit der time()-Funktion 
machen. 30 Tage sind 30*24*3600 Sekunden.
Gast #6110105
Lesenswert?

Einweiser schrieb:
> if( strtotime($row['prüftermin']) > strtotime('-30 days') )
>
> und insbesonders im Argument des rechten strtotime() calls

Der rechte call zeigt mir:
1
unix: 1576652588
2
date: 18/18/2019

ahhhhh........... :-D


ja jetzt kam es mir die Schuppen von den Haaren:
1
if( strtotime($row['prüftermin']) < strtotime("+30 days"))

Manchmal hat man echt so ein Brett vor dem Kopf. Kann ja nicht klappen 
wenn man in die Vergangenheit prüft, weil ja alles in der Vergangenheit 
ist.

So klappt das nun... Danke für deinen Denkanstoß. :-D

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren