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

MySql PHP - Datum auslesen und den Tag anzeigen

lacido

Mitglied
Hallo zusammen,

ich möchte gerne dass vor dem Datum das aus der Datenbank ausgelesen wird auch der Tag in deutsch angezeigt wird.

Nun habe ich dass mit einem Array vorbereitet die Funktion lässt sich auf rufen und zeigt den richtigen Tag an, nur im SQL - Befehl will das einfach nicht funktionieren.

Sicher, ich könnte auch den Tag schon von vornherein in ein Feld einlesen bzw. Umwandeln lasssen, aber es macht doch wohl keinen Sinn alles doppelt und dreifach in der Datenbank zu haben.


Hier der Code:
PHP:
<?php
    require_once"Php-includes/DatZug.php";

    function DtTage($Wert){
        $wochentage = array(
                            "Mon" => "Montag",
                            "Tue" => "Dienstag",
                            "Wed" => "Mittwoch",
                            "Thu" => "Donnerstag",
                            "Fri" => "Freitag",
                            "Sat" => "Samstag",
                            "Sun" => "Sonntag"
                            );

        $Tage = strtotime($Wert);
        /* $zeit = strtotime("2006-12-09"); */
        return $DtTage = $wochentage[date("D", $Tage)];
        /* echo $DtTage = $wochentage[date("w", $zeit)]; */
    }

    /* SUBSTRING_INDEX(text,' ',12) as text - zeigt nur 12 Worte an */
    if ($stmt = $mysqli->prepare("SELECT id, EreignisDatum, DATE_FORMAT(EreignisDatum,'%d.%m.%Y ')AS Datum, titel, SUBSTRING_INDEX(text,' ',12) as text FROM aktuell ORDER BY EreignisDatum ASC")) {

      $stmt->execute();
      $stmt->bind_result($id, $EreignisDatum, $Datum, $titel, $text);

    echo'<table border="1" cellpadding="1" cellspacing="1" width="900"  align="center">';
      while($stmt->fetch()) {

            $titel = htmlspecialchars($titel);
            $text =  htmlspecialchars($text);
            $EreignisDatum = htmlspecialchars($Datum);


        echo " <tr>
                <td width=100 align=left><b>DtTage($EreignisDatum) ,$EreignisDatum</b></td>
                <td width=200 align=left><b>$titel</b></td>
                <td width=500 align=left>$text</td>
                <td><a href='bearbeiten.php?id=". (int)$id . "'><img src='images/bearbeiten1.png'
                alt='Zur&uuml;ck zur Startseite'
                title='Zur&uuml;ck zur Startseite'
                width='92' height='28' border='0' /></a></td>
                <td><a href='loeschen.php?id="  . (int)$id . "'><img src='images/loeschen1.png'
                alt='Zur&uuml;ck zur Startseite'
                title='Zur&uuml;ck zur Startseite'
                width='92' height='28' border='0' /></a></td></a></td></tr>";

        }   echo '</table>';
    //  echo "</ul>\n";
      $stmt->close();
      }
    $mysqli->close();
    ?>
    <a href="neu.php">
        <img src='images/neuerTermin.png'
                alt='Zur&uuml;ck zur Startseite'
                title='Zur&uuml;ck zur Startseite'
                width='140' height='40' border='0' /></a>
</body>
</html>

Wie kann ich das Umsetzen, ich komme im Moment einfach nicht drauf?

So wird es mir aktuell angezeigt :

Es soll aber wie bereits gesagt der Tag angezeigt werden.
 

Anhänge

  • Screenshot_5.jpg
    Screenshot_5.jpg
    69,8 KB · Aufrufe: 6
Was hat deine Frage denn mit SQL zu tun? Du bekommst ein Datum aus der Datenbank und bestimmst anschließend den deutschsprachigen Wochentag dazu. Dann hat das Bestimmen des Wochentags eigentlich nichts mehr mit SQL zu tun, oder?

Was mich irritiert ist dein Code, mit dem du die Funktion aufrufst:

PHP:
echo "...<td width=100 align=left><b>DtTage($EreignisDatum) ,$EreignisDatum</b></td>...";
kann m.E. nicht klappen.
Dann eher schon
PHP:
echo "...<td width='100' align='left'><b>" . DtTage($EreignisDatum) . ", " . $EreignisDatum . "</b></td>...";
 
Hallo Bodil,

erst mal vielen Dank für Deine Antwort, war goldrichtig. Manchmal sitzt man eben davor und sieht das offensichtliche nicht.

Natürlich war der Titel falsch formuliert, mit SQL jat das in der Funktion gar nichts mehr zu tun, da der Tag ja erst mit den ausgelesenen Werten bestimmt wird.

Nochmals Danke für deine Mühe,
 
Zurück
Oben