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-Key: 150680

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

Printed on: April 25, 2024 at 08:04 o'clock

Member: Nightlight
Nightlight Sep 09, 2010 at 08:58:00 (UTC)
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.
Member: thaenhusen
thaenhusen Sep 09, 2010 at 09:06:36 (UTC)
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
Mitglied: 69304
69304 Sep 09, 2010 at 09:46:03 (UTC)
Goto Top
Danke, so passts!

Aber auch danke an thaenhusen!
Member: dog
dog Sep 09, 2010 at 15:24:52 (UTC)
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ß...