Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Datum + Tage ?? Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Datum + Tage ?? Problem


 
runner
21-11-2002, 11:43 
 
Hallo ich habe mal wieder ein kleines problem:(
Ich lese mit dem code ein Datum aus einer txt-datei, und vergleiche sie mit dem Aktuellem Datum.Wenn das Datum gleich ist, wird das bild new.gif ausgegeben. Ist das Datum nicht gleich wird wird "nicht neu" ausgegeben.
Das heist das bild new.gif wird immer nur ein Tag ausgegeben.
Jetzt möchte ich aber das, das Bild new.gif zb. 3 Tage ausgegeben wird!!
wie mache ich das denn jetzt?? Komme da nicht weiter :confused:
ich hoffe es kann mir hier einer weiter helfen.


$nicht_neu = "Nicht neu";
$doch_neu = "<img src=\"image/new.gif\" alt=\"New\">";
$aktuelles_datum = date("d.m.Y");
if ($datum[$i] == $aktuelles_datum){ $new = $doch_neu;} else {$new = $nicht_neu;} echo $new ;


gruß
runner

 
slarti
21-11-2002, 11:57 
 
benutze doch unixtimestamp:

if(tsfile>(tsnow-(60*60*24*3)))...

 
runner
21-11-2002, 12:00 
 
mhh Sorry wie mache ich das den ??

 
pauino
21-11-2002, 12:01 
 
hi

mit mktime

http://www.php-resource.de/manual.php?p=function.mktime

gruesse von pau

 
runner
21-11-2002, 12:05 
 
könnt ihr mir das an dem beispiel oben mal erklären?

 
pauino
21-11-2002, 12:32 
 
hi

ok ich versuchs mal:


$nicht_neu = "Nicht neu";
$doch_neu = "<img src=\"image/new.gif\" alt=\"New\">";
$timestamp_miuns_drei_tage = strtotime ("-3 DAY");
if (mktime($datum[$i]) < $$timestamp_miuns_drei_tage){ $new = $doch_neu;} else {$new = $nicht_neu;} echo $new ;


erklaerung :

mit strtotime ("-3 DAY"); bekommst du eine integer die den sekunden seit 1970 entspricht (TIMESTAMP) bis heute vor drei tagen.
mit mktime($datum[$i]) bekommst du den timestamp von dem abgespeicherten datum. wenn der kleiner ist, dann ist sie aelter als drei tage

gruss von pau

 
slarti
21-11-2002, 12:36 
 
ich geh mal davon aus, daß deine zeitangeben im format (d.m.Y) vorliegen.
dann:

$dummy=explode(".",$datum[$i]);
$tsfile=mktime(0,0,0,$dummy[1],$dummy[0],$dummy[2]);
$tsnow=time();

if($tsfile>($tsnow-(60*60*24*3))) //dann isses neu

 
pauino
21-11-2002, 12:38 
 
hi

oder so ! ;-)

gruss von pau

 
runner
21-11-2002, 12:58 
 
@pauino

jetzt steht aber übnerall nicht neu Obwohl ich die dateien das heutige datum haben??

@ slarti

das verstehe ich nicht ,bin ich zu dumm??:(

 
pauino
21-11-2002, 13:01 
 
hi

upps. muss in der if dann wohl:

mktime($datum[$i]) > $$timestamp_miuns_drei_tage

heissen

ist ja auch klar

gruss von pau

 
runner
21-11-2002, 13:08 
 
@pauino
ich habe jetzt die datum angaben mal umgeschrieben und hebe mit den datum 12.11.2002 angefangen bis zum heutigen tag.

sie werden mir jetzt aber trotzdem alle als NEU angezeigt??

 
pauino
21-11-2002, 13:13 
 
ich welchem format liegt denn dein datum vor ?

also tag . monat . jahr oder monat tag jahr

gruss von pau

 
runner
21-11-2002, 13:15 
 
Tag Monat Jahr
gruss
runner

 
pauino
21-11-2002, 13:21 
 
hi

dann probiersmal mit slartis methode:


$dummy=explode(".",$datum[$i]);
$tsfile=mktime(0,0,0,$dummy[1],$dummy[0],$dummy[2]);

$tsnow = time() - (60*60*24*3);
if ($tsfile > $tsnow){ $new = $doch_neu;} else {$new = $nicht_neu;} echo $new ;



das ist sowieso eleganter denke ich

gruss von pau

 
runner
21-11-2002, 13:26 
 
das funktioniert :)

aber wie kann ich den da die Tage verstellen??

gruss
runner

 
pauino
21-11-2002, 13:30 
 
$tsnow = time() - (60*60*24*3);

hier!

erklaerung :

60 sekunden * 60 minuten * 24 stunden * 3 tage

das ist die anzahl der sekunden in drei tagen !

also die letzte zahl ist die anzahl der tage

gruss von pau

 
runner
21-11-2002, 13:30 
 
muss mal kurz weg bion ca in 2 std. wieder da
währe schon wenn du mir das dann noch erklären könntesdt :)

gruss
runner

 
runner
21-11-2002, 15:27 
 
Dankeschön :D
Das habe ich jetzt so weit verstanden:)
Jetzt habe ich haber noch ein Problem:
Mit den folgenden Code lese ich dateien in einem array ein und gebe sie mit einer inhalts prüfung aus.
In diesem ist aber kein Datum gespeichert!!!
wie schaffe ich es jetzt das ich zb. das new.gif auch hier erhalte wenn eine Datei Aktualisiert worden ist???
Hoffentlich könnt ihr mir hier auch nochmal helfen :(


$verzeichnis = opendir('kat/');
while ($me_file = readdir($verzeichnis))
if($me_file != "." && $me_file != "..")
{
$me_file = ereg_replace(".php","",$me_file);
$me_array[] = $me_file;
}
natcasesort ($me_array);
foreach ($me_array as $me_file){
$datei2 = "kat/".$me_file.".php";
$fp = file($datei2,"r");
$fp = array_reverse($fp);
$file_line = file($datei2);
$total_lines = count($file_line);
for ($index = 0; $index < $total_lines; $index++)
{
$line = explode("|",$fp[$index]);
$name[$index]=$line[0];
$datum[$index]=$line[1];
$adresse[$index]=$line[2];
$kommentar[$index]=$line[3];
$downloads[$index]=$line[4];
$bewertungen[$index]=$line[5];
$zwischennote[$index]=$line[6];
$demo[$index]=$line[7];
$summe = $summe + $downloads[$index];
}
print "<li style=\"list-style-type: square;\"><a href=\"$meindex?mekat=$me_file\">$me_file</a></li><font size=\"1\"> ($total_lines)</font>";
}
closedir($verzeichnis);


gruss
Runner

 
pauino
21-11-2002, 16:06 
 
hi

gott so ein script wer soll sich denn da ein arbeiten?

ich denke du willst die zeit zu dem files haben da kannst du mal hier nachgucken:

http://www.php-resource.de/manual.php?p=function.filemtime

gruss von pau

 
runner
21-11-2002, 17:03 
 
mist bekomme es nicht am klappen :confused:

gruss

runner

 
pauino
21-11-2002, 17:18 
 
hi runner

ich hab leider grad nicht die zeit,

versuch doch dein neues problem als neues thema ins forum zu stellen

gruss von pau

 
runner
21-11-2002, 17:33 
 
ok danke dir :)

gruss

runner

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:04 Uhr.