Tabellenspalte farblich nach Uhrzeiten hervorheben?

Bribea

Mitglied
Hallo Community,

Ist es möglich, dass man eine Tabellenspalte nach gewissen Uhrzeiten ein andere bgfarbe zuweisen kann?
Sprich von 0-3 Uhr Blau 6-9 Grün usw..?
Mit php machbar oder eher js?

Mfg
 
PHP:
<?php
$h = date("H");
switch ($h) {
  	case 00: include("template/w_0h.html");
   
  	case 02: include("template/w_2h.html");
 
  	case 04: include("template/w_4h.html");
    
	case 06: include("template/w_6h.html");

	case 08: include("template/w_8h.html");

	case 10: include("template/w_10h.html");
  
	case 12: include("template/w_12h.html");

	case 14: include("template/w_14h.html");

	case 16: include("template/w_16h.html");

	case 18: include("template/w_18h.html");

	case 20: include("template/w_20h.html");
 
	case 22: include("template/w_22h.html");

	

}
?>

so hatte ich es versucht zu lösen, nur wurden dann alle seiten auf einer seiter untereinander angezeigt :/
gibt es eine möglichkeit das problem zu lösen?
 
Die Idee ist gar nicht so schlecht, aber es gibt mehrere Sachen, die man daran verbessern kann, abgesehen von der Möglichkeit, die Dir in Deinem Beispiel helfen würde: einfach break-Ausdrücke hinter die include-Anweisungen schreiben.

Ansonsten würde ich persönlich es wohl so lösen:
PHP:
$times = array(
 0 => "template/w_0h.html",
 1 => "template/w_0h.html",
 2 => "template/w_2h.html",
 3 => "template/w_2h.html",
 4 => "template/w_4h.html",
 5 => "template/w_4h.html",
 6 => "template/w_6h.html",
 7 => "template/w_6h.html",
 8 => "template/w_8h.html",
 9 => "template/w_8h.html",
 /* ... */
);

$hour = (int) date( "H" );
$template = $times[ $hour ];

include( $template );

Das erzeugt aber immer noch ein massives Overhead, weil Du jetzt, nur um die Farbe einer Spalte zu ändern, zwölf verschiedene Dateien brauchst. Am sinnvollsten wäre es wohl aber, wenn Du nur zwölf verschiedene CSS-Klassen definierst, welche entsprechend die Farben der einen Spalte festlegen.
PHP:
<table class="colour-for-<?php echo $hour ?>h"> ... </table>
CSS:
.colour-for-0h {
 /* ... */
}

.colour-for-1h {
  /* ... */
}

/* ... */
 
Erstmal danke für die schnelle Antwort :)

Mit deiner Empfehlung klappt das ganze schon wesentlich besser und die Spalte wird anhand der Uhrzeit angepasst (sprich das entsprechende Template wird geladen) jedoch ist das wie du schon meintest sinnvoller es über .css zu regeln .. nur funktioniert das ganze nicht so wie gewollt,

Code:
	.colour-for-12h{
		color:#006600;
	}

als Beispiel und in die template datei
PHP:
<td class="colour-for-<?php echo $hour ?>12h">
eingegeben .. nur wo ist jetzt der Denkfehler bzw warum färbt er die Spalte nicht? Muss die Template-Datei jetzt als .php laufen? oder wird beim "h" (fett hinterlegt) die entsprechende Zeit eingetragen?

Mfg

edit: ein "-" hatt nach for gefehlt .. jetzt funktioniert es jedoch wird die Seite 2x ausgegeben .. 1x im richtigen Format und einmal das Rohformat (ohne Farbliche Markierung)
 
Zuletzt bearbeitet:
Alxy, genau genommen geht Dein Beitrag am Thema vorbei, da es vollkommen egal ist wie breit die Spalten sind oder wieviele es sind, denn die Uhrzeit kannst Du in keinem Fall mit CSS auslesen.
 
Ich sagte, wenn es immer der gleiche Abstand ist, also angenommen du hast 24 trs (für 24Stunden) und willst jeweils drei hintereinander färben, dann würde das glaube ich durchaus nur mit css gehen. (Will nicht heißen das ich das so machen würde oder ausprobiert hätte ;) )
 
Zurück