Ankündigung

Einklappen
Keine Ankündigung bisher.

Wochentag bei Datum aus Datenbank Mysql anzeigen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wochentag bei Datum aus Datenbank Mysql anzeigen

    Hallo, ich brüte schon den ganzen Nachmittag bis jetzt über diesem Problem. Ich habe eine interne Seite für einen kleinen Verein gebastelt. Die Skripte sind PHP 7 und alles funktioniert gut. Bei der Abfrage aus der Tabelle wird alles korrekt angezeigt. Die Daten werden in einem Array übergeben.
    <?
    echo "Datum: ";
    while ($daten = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
    echo $daten['datum'];
    ?>
    Wo und wie kann ich in der Echoausgabe das Datum mit dem zugehörigen Wochentag ausgeben lassen? Das Datum steht in der Mysql Tabelle im Format 2018-11-17, der Spaltenname ist Datum, Format ist date. Kann mir irgend jemand hier helfen? Ich habe schon alles mögliche ausprobiert - ohne Erfolg

  • #2
    PHP-Code:
    $date="2018-11-17";
    echo [
    "Sonntag","Montag","Dienstag""Mittowch","Donnerstag","Freitag","Samstag"][date('w'strtotime($date))];
    echo 
    '<br>';
    echo 
    date('l'strtotime('2018-11-17')); 

    Kommentar


    • #3
      Du willst sicherlich den Wochentag auf Deutsch ausgeben lassen.
      Leider kann Mysql nicht direkt Wochentage in anderen Sprachen ausgeben, so dass man sich anders behelfen muss.
      Dafür gibt es mehrere Möglichkeiten.
      Du lässt dir mit DAYOFWEEK(datum) die Ganzzahl des Wochentages angefangen bei 1 für Montag und 7 Für Sonntag ausgeben und mit PHP erstellst du dir ein Array mit den deutschen Wochentagen dazu

      Beispiel dazu
      PHP-Code:
        $WeekdayNamesDE = [  'Montag''Dienstag''Mittwoch''Donnerstag''Freitag''Samstag','Sonntag' ]; 
      Mit
      PHP-Code:
      echo WeekdayNamesDE[$daten['datum']]; 
      erhälst du dann den Namen des Wochentages.
      Nachteil ist du verlierst das eigentliche Datum, wenn du das dennoch brauchst, dann muss du deine Abfrage um eine Spalte erweitern
      PHP-Code:
      $sql 'SELECT DAYOFWEEK(`datum`) AS Wochentag, `datum` FROM Mytable'
      Beachte das die Zahl des Wochentages nun nicht mehr datum heisst sondern Wochentag.

      Eine andere Variante wäre, du machst aus dem Datum in PHP einen Wochentag daraus. Mit den intldateformatter sind so ziemlich alle Sprachen und Varianten eines Datums darstellbar.

      Beispiel
      PHP-Code:

      $fmt 
      datefmt_create(
          
      'de_DE',
          
      IntlDateFormatter::FULL,
          
      IntlDateFormatter::FULL,
          
      'Europe/Berlin',
          
      IntlDateFormatter::GREGORIAN
      );

      while (
      $daten mysqli_fetch_array$db_ergMYSQLI_ASSOC)) {
          
      $dt = new DateTime($daten['datum']);
          
      datefmt_set_pattern($fmt'EEEE');
          echo 
      '<p>Wochentag ist ' datefmt_format($fmt$dt) . '</p>';

      Du kannst auch als dritte Möglichkeit mit dem Wochentag-Array und datetime aus PHP arbeiten anstatt mit intldateformatter.
      Du siehst, viel Wege führen zum Ziel.

      Kommentar


      • #4
        Danke, aber das funktioniert leider auch nicht. Wenn ich die verschiedenen Datumsangaben aus der Datenbank anzeigen lasse, steht jetzt überall Donnerstag daneben. Zum Beispiel 2018-11-17 Donnerstag, 2018-11-16 Donnerstag etc.. Also ich brauche in der Anzeige das Datum aus der Datenbank mit dem jeweiligen Wochentag. Hat vielleicht noch jemand eine Idee? Was stimmt denn nicht?

        Kommentar


        • #5
          Oh, meine Antwort bezog sich auf den ersten Vorschlag. Mache mich gleich an den nächsten Versuch

          Kommentar


          • #6
            Irgendwie klappt alles nicht wirklich. Mit letzterem Beispiel wurden mir die Wochentage angezeigt, aber kein Datum dazu und die Übungsleiter auch nicht. Normal klappt diese Abfrage. Vielleicht bin ich für heute einfach zu müde und inzwischen zu genervt =O. Ich danke Euch trotzdem für Eure Mühe und wünsche Euch noch einen schönen Abend. Für weitere Ideen bin ich dankbar . Morgen versuche ich mein Glück weiter...

            Kommentar


            • #7
              Du sollst den Code auch nicht nur 1:1 kopieren, das ist schliesslich nur ein Beispiel-Code! Du musst den Code auch noch an deine Bedürfnisse anpassen

              Kommentar


              • #8
                Guten Morgen, jetzt hab ich es . Letztendlich habe ich es mit intldateformatter hin bekommen. Ganz lieben Dank . Das Wochenende ist gerettet!

                Kommentar


                • #9
                  Zitat von protestix Beitrag anzeigen
                  Du willst sicherlich den Wochentag auf Deutsch ausgeben lassen.
                  Leider kann Mysql nicht direkt Wochentage in anderen Sprachen ausgeben, so dass man sich anders behelfen muss.
                  Doch, natürlich geht das. Bei DATE_FORMAT() einfach %W verwenden, welches den Wochentag in der eingestellten Sprache ausgibt - die muss natürlich mit »SET lc_time_names = 'de_DE'« auf Deutsch eingestellt sein.

                  Kommentar


                  • #10
                    Danke tk1234 , das kannte ich noch gar nicht.
                    Geht ja wunderbar.

                    Kommentar

                    Lädt...
                    X