[PHP] If-Bedingung & Logikproblem

Toby

Cadet 4th Year
Registriert
Mai 2003
Beiträge
107
Hallo zusammen,

ich habe hier ein einfache IF-Konstruktion um die Wochentage darzustellen.
Hierzu verwende ich die Funktion getdate .


Das ganze würde tadellos funktionieren wenn die letzte If-Bedinung nicht wäre:

if ($datum_deutsch[wday]==0) {$datum_deutsch[wday]="Sonntag";}

Diese Bedingung bewirkt das der Wochentag immer mit Sonntag angezeigt wird :confused_alt:
OHNE diese Bedinung funktioniert das Ganze.
Zur Verdeutlichung habe ich das den Inhalt des Arrays mit print_r ausgegeben.


Zum nachvollziehen folgender Code-Auszug aus einer Schleife:

PHP:
$timestamp =  strtotime($ergebnis[$i][datum]);

$datum_deutsch = getdate($timestamp);
		   
print_r($datum_deutsch);  # AUSGABE DES ARRAY-Inhaltes zu DEMOZWECKEN
		  		   
// BESAGTE IF-Anweisung
if ($datum_deutsch[wday]==1) {$datum_deutsch[wday]="Montag";}
if ($datum_deutsch[wday]==2) {$datum_deutsch[wday]="Dienstag";}
if ($datum_deutsch[wday]==3) {$datum_deutsch[wday]="Mittwoch";}
if ($datum_deutsch[wday]==4) {$datum_deutsch[wday]="Donnerstag";}
if ($datum_deutsch[wday]==5) {$datum_deutsch[wday]="Freitag";}
if ($datum_deutsch[wday]==6) {$datum_deutsch[wday]="Samstag";} 
if ($datum_deutsch[wday]==0) {$datum_deutsch[wday]="Sonntag";}
		   
		   		    
echo "<strong>".$datum_deutsch[wday]."</strong>";  # WOCHENTAG - Ausgabe zu DEMOZWECKEN


Hier eine Hardcopy ...
warum.jpg



Kann mir jemand sagen was hier faul ist ?
 
PHP:
$timestamp =  strtotime($ergebnis[$i][datum]);

$datum_deutsch = getdate($timestamp);
           
print_r($datum_deutsch);  # AUSGABE DES ARRAY-Inhaltes zu DEMOZWECKEN
                     
// BESAGTE IF-Anweisung
if ($datum_deutsch['wday']=='1') $datum_deutsch['wday']="Montag";
if ($datum_deutsch['wday']=='2') $datum_deutsch['wday']="Dienstag";
if ($datum_deutsch['wday']=='3') $datum_deutsch['wday']="Mittwoch";
if ($datum_deutsch['wday']=='4') $datum_deutsch['wday']="Donnerstag";
if ($datum_deutsch['wday']=='5)' $datum_deutsch['wday']="Freitag";
if ($datum_deutsch['wday']=='6') $datum_deutsch['wday']="Samstag";
if ($datum_deutsch['wday']=='0') $datum_deutsch['wday']="Sonntag";
           
                       
echo "<strong>".$datum_deutsch[wday]."</strong>";  # WOCHENTAG - Ausgabe zu DEMOZWECKEN
so sollte es funtzen denke ich
edit: Wobei das so ein bissin komplizeirt ist wie du das machst ... weil du kanst einfach auch mit date einfach den wochentag ausgeben lassen (ok nur auf englisch) aber ist ok finde ich ...
 
Zuletzt bearbeitet:
Oder man definiert ein Array mit den ganzen Wochentagen.
 
daemon777 schrieb:
Oder man definiert ein Array mit den ganzen Wochentagen.


genau, wesentlich einfacher:

PHP:
$wochentage = array(

"Sonntag",

"Montag",

"Dienstag",

"Mittwoch",

"Donnerstag",

"Freitag",

"Samstag");


$tag = $wochentage[date("w")];
echo $tag;

und wenn du es zu einem bestimmten wochentag haben willst wo du eh schon den timestamp hast:

PHP:
$tag = $wochentage[date("w",$timestamp)];
 
Zuletzt bearbeitet:
Hallo,

Im Endeffekt hat mir der Vergleich (==) der Werte ohne Anführungszeichen das "Genick geborchen".

Danke für Eure Anregungen & Vorschläge, da habt Ihr natürlich Recht...geht viel schneller u. einfacher mit einem Array. :daumen:

gruss
Toby
 
Zurück
Oben