Bash, Shell, PHP, Python, Perl, CGI
			
		
		
			
				
																			
								fulltilt 							 
									
		Posts:  366 Joined:  2006-08-27 02:06  
		 
		
						
					
													
							
						
									
						Post 
					 
								by fulltilt  2009-02-18 12:20 
			
			
			
			
			ich möchte mir gerne eine Abfrage erstellen wo ein Datum was zuletzt geändert (update) erfolgt ist farblich markiert wird.
Also z.B. innerhalb der letzten 7 Stunden, rot markieren.
Code: Select all 
$basedate = $myrow["date"];
$date1 = strtotime("-7hours", $basedate);
if (($basedate = strtotime($date1)) === true) {
   echo "<td><font color=#FF0000>$basedate</font></td>";
}else{
echo "<td>$basedate</td>";
was mache ich bei der Abfrage falsch?
					Last edited by 
fulltilt  on 2009-02-18 13:58, edited 1 time in total.
									
 
		 
				
		
		 
	 
				
		
		
			
				
																			
								krackman 							 
									
		Posts:  20 Joined:  2004-04-09 04:31Location:  Bremen  
		 
		
						
					
													
							
						
									
						Post 
					 
								by krackman  2009-02-18 13:34 
			
			
			
			
			hier sollte ein
Code: Select all 
if($basedate == strtotime($date1))
{}
else
{}
reichen. müsste aber sekundengenau sein.
Du kannst natürlich auch mit time() arbeiten.
Code: Select all 
if(($basedate + 7*60*60)  > time())
{
    echo "Letzte Änderung ist länger als 7h her";
}
else
{
   echo "Letzte Änderung ist kürzer als 7h her";
} 
Eventuell muss du das auch umdrehen, je nachdem was genau in
dem Datumsfeld der DB steht.
					Last edited by 
krackman  on 2009-02-18 13:41, edited 1 time in total.
									
 
		 
				
		
		 
	 
				
		
		
			
				
																			
								fulltilt 							 
									
		Posts:  366 Joined:  2006-08-27 02:06  
		 
		
						
					
													
							
						
									
						Post 
					 
								by fulltilt  2009-02-18 13:40 
			
			
			
			
			matzewe01 wrote: 
Wobei ich eher auf > abfragen würde bzw. ein between statt ein "Datetime" auf ein Datum matchen, dass sekundengenau stimmen müsste. ;-)
Danke Dir,
bin das ganze nochmal neu angegangen, das Problem dabei ist wahrscheinlich das Format des Datums (kein timestamp).
so ist es abgespeichert > 18.02.2009 - 11:57:31
habe jetzt mal folgendes gemacht:
Code: Select all 
$basedate = $myrow["timestamp"];
if (time() - 60 * 60 * 24 * 1 < $basedate){
   $font = "<font color=#FF0000>";
}else{
   $font = "<font color=#000000>";
} 
   echo "<td>$font";
   echo "$basedate</font></td>";
bleibt allerdings alles schwarz, keine Veränderung ...
 
		 
				
		
		 
	 
				
		
		
			
				
																			
								krackman 							 
									
		Posts:  20 Joined:  2004-04-09 04:31Location:  Bremen  
		 
		
						
					
													
							
						
									
						Post 
					 
								by krackman  2009-02-18 13:50 
			
			
			
			
			Code: Select all 
$date = str_replace(" - ", "", $myrow['timestamp']);
$ts = strtotime($date);
if(time() > ($ts + 7 *3600))
{
    echo "länger als 7h her";
}
else
{
  echo "kürzer als 7h her";
}
Geht bestimmt auch noch schöner, fällt mir nur gerade nicht ein.
 
		 
				
		
		 
	 
				
		
		
			
				
																			
								fulltilt 							 
									
		Posts:  366 Joined:  2006-08-27 02:06  
		 
		
						
					
													
							
						
									
						Post 
					 
								by fulltilt  2009-02-18 13:55 
			
			
			
			
			Perfekt :-)
Danke Euch
Krackman wrote: Code: Select all 
$date = str_replace(" - ", "", $myrow['timestamp']);
$ts = strtotime($date);
if(time() > ($ts + 7 *3600))
{
    echo "länger als 7h her";
}
else
{
   "kürzer als 7h her";
}
Geht bestimmt auch noch schöner, fällt mir nur gerade nicht ein.