69304
Goto Top

PHP Datum überprüfen ob älter als ein Monat

Wie kann man in PHP überprüfen, ob ein Datum (YY-MM-DD HH:MM:SS) älter als ein Monat ist

Hallo Community!

Ich will gerade ein Skript in PHP schreiben, was mir den Server ein bisschen sauber hält. Es soll überprüfen, ob eine Datei älter als ein Monat ist, wenn ja, dann diese löschen.

Zwei Werte (Datum/Zeit) habe ich zur Verfügung:

$datetime_now = date("Y-m-d H:i:s");  
$datetime_written = date("Y-m-d H:i:s", filemtime($file));  

Soweit, sogut. Bloß wie überprüfe ich jetzt, ob das Datum der Datei ($datetime_written) älter als ein Monat im Bezug auf das heutige Datum ($datetime_now) ist?

Grüße!


Btw: Alternativ habe ich in einer MySQL-Datenbank auch den Wert (Datum/Zeit) des Uploads (also der Erstellung der Datei) gespeichert - könnte ich nicht eigentlich auch direkt die Ergebnisse mit SQL auslesen im Bezug auf "NOW()"?

Content-ID: 150680

Url: https://administrator.de/contentid/150680

Ausgedruckt am: 25.11.2024 um 10:11 Uhr

Nightlight
Nightlight 09.09.2010 um 10:58:00 Uhr
Goto Top
Hallo,

Differenz in Tagen, z.B.:

<?php
$date = time();
$datetime_written = date("Y-m-d", filemtime($file));  
$timestamp_written=strtotime($datetime_written);
$differenz = ($date/86400) - ($timestamp_written/86400);
echo floor($differenz);
?>
Über einen Dateeintrag in der MySQL Datenbank wäre das auch lösbar.
thaenhusen
thaenhusen 09.09.2010 um 11:06:36 Uhr
Goto Top
Moin.

Das müsste auf beide Wege funktionieren. -> google.de

Aber hier mal ein Ansatz

$datetime_now = date("Y") . date("m") -1 . date("d") -1;
$datetime_written = date("Y", filemtime($file)) . date("m", filemtime($file)) . date("d", filemtime($file));

if($datetime_written < $datetime_now){
echo "Datei ist älter als 1 Monat";
}
else{
echo "Datei ist nicht älter als 1 Monat";
}

HTH
MK
69304
69304 09.09.2010 um 11:46:03 Uhr
Goto Top
Danke, so passts!

Aber auch danke an thaenhusen!
dog
dog 09.09.2010 um 17:24:52 Uhr
Goto Top
Wenn du es über das Dateisystem machst:

if(filemtime($file)+(60*60*24*30) < time()) { ...


Wenn du es in SQL machst:

WHERE datum + (60*60*24*30) < NOW() ...

Die anderen Vorschläge hier sind von Hinten durchs Auge in den Fuß...