• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datum Geburtstag ausgabe

Status
Für weitere Antworten geschlossen.

digga

Mitglied
Ich habe eine Anzeige von Tag, Monat und Jahr:
PHP:
<?php
$timestamp = time();
$datum = date("d.", $timestamp);
$monat = date("m", $timestamp);
$year = date("Y", $timestamp);

$tage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
$monate = array(1=>"Januar", 2=>"Februar", 3=>"März", 4=>"April", 5=>"Mai", 6=>"Juni", 7=>"Juli", 8=>"August", 9=>"September", 10=>"Oktober", 11=>"November", 12=>"Dezember");

$tag = date("w");
$month = date("n");
if($tage == "16" and $monat == "8")
{
echo "<span style=\"color:red\"><b><center>Heute ist Tobias' Geburtstag</b></center></span>";
}
elseif($tage == "4" and $monat == "6")
{
echo "<span style=\"color:red\"><center><b>Heute ist Matthias' Geburtstag</b></center></span>";
}
elseif($tage == "29" and $monat =="7")
{
echo "<span style=\"color:red\"><center><b>Heute ist Test's Geburtstag</b></center></span>";
}
else
{
echo "<span style=\"color:blue\"><center>Heute ist $tage[$tag], der $datum $monate[$month], $year</center></span>";
}
?>

Die Anzeige funktioniert auch...
Ich habe jetzt als Test mal eingegeben, dass am tag 29 und monat 7 eine test-person Geburtstag hat, jedoch funktioniert es nicht. Es wird immer nur ausgegeben: Heute ist ..., der ...., ....

Warum und wie kann ich es ändern?
 
PHP:
else
{
echo "<span style=\"color:blue\"><center>Heute ist ".$tage[$tag].", der ".$datum." ".$monate[$month].", ".$year."</center></span>";
}
Probiers so.
Vielleicht gehts so eher.


MfG, matibaski
 
PHP:
$tage == "29" and $monat =="7"
$tage ist ein Array und kann niemals ein Integer oder String sein
PHP:
$tage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
außerdem, finde ich deine Lösung sehr umständlich, du solltest sie nocheinmal überarbeiten!
 
Wäre auch eine möglichkeit, das war aber nicht mein Problem, es wurde nicht angezeigt, wenn der Geburtstag ist und mein Fehler bestand darin, dass ich
$tag anstatt $datum in die if-anweisung geschrieben habe.

Habe meinen Fehler aber selber gefunden.
Vielen Dank trotzdem für die Antwort!!!
 
LoL.
Hätt ich auch draufkommen sollen.
Also ich finde, @ digga, dass es sich hier nicht lohnt mit array's zu arbeiten.


MfG, matibaski
 
Doch das tut es, allerdings auf eine andere Art und Weise. Schau dir mal den Code an, und vergleich die Länge mit der des Codes von digga

PHP:
<?php
error_reporting(E_ALL);
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
$geburtstage = array(array());
$geburtstage[7][29] = "Test";
$geburtstage[6][4] = "Matthias";
$geburtstage[8][16] = "Tobias";
if(isset($geburtstage[date("n")][date("j")]))
{
  echo "<div style=\"color:red;text-align:center;\">";
  echo "Heute ist der Geburtstag von ".$geburtstage[date("n")][date("j")];
  echo "</div>";
}
else
{
  echo "<div style=\"color:red;text-align:center;\">";
  echo "Heute ist ".date("l").", der ".date("d. F, Y");
  echo "</div>";
}
?>
 
Zuletzt bearbeitet:
Puh...
Noch nie gesehen, dass man ein Array in ein Array stopft. :D

Das mit setlocale() wurde ja mal digga erklärt. Dachte er wollte es nich verwenden :D

Aber deine Lösung ist besser aufgebaut und funktioniert auch einwandfrei :D
(Habs soeben ausprobiert. Der Herr Frank kann PHP sehr gut scripten :D)



MfG, matibaski
 
sei nicht zu schnell mit deinen Worten, denn es ist doch ein fehler hineingeraten. date() beachtet setlocale nicht, d.h. das Eregbnis wird Englisch sein. Man muss hier mit strftime arbeiten.
Also:
PHP:
  echo "Heute ist ".date("l").", der ".date("d. F, Y");
mit dem hier ersetzen
PHP:
  echo "Heute ist ".strftime("%A").", der ".strftime("%d. %B, %Y");
 
Also bei meinem Lokalen Host wurde alles richtig angezeigt. -.-
In Deutsch, versteht sich.


MfG, matibaski
 
Dann hat sehrwarscheindlich mein Informatik-Nachbar etwas geändert.
Der hat bei meinem lokalen Host was geändert gehabt, in der PHP.ini.


MfG, matibaski
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben