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

Gast #6110070
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
Gast #6110073
Kenne mich in PHP nicht aus, aber in C würde ich es in der Unixzeit 
rechnen.
1
if ( Pruefzeit_Unix < (Jetzt_Unix + 30_Tage_Unix) ){ // Termin innerhalb 30 Tage
2
  // Ja
3
}else{
4
  // Nein
5
}
Persönliche Seite #6110076
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
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

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.