Deutsche Wochentage für Datum

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

  • Deutsche Wochentage für Datum

    Hallo,

    ich hab folgendes Problem. Ich möchte für jedes Datum den dazugehörigen Wochentag mit anzeigen lassen.

    Bisher formatiere ich das datum aus der Datenbank so:

    DATE_FORMAT(datum,'%d.%m.%Y') as datum2 dann wird z.b. 01.05.2003 ausgegeben nur wie geht es das dann da steht Sonntag, 01.05.2003 ?

    Danke schonmal im vorraus.

    Mfg Gun

  • #2
    Informiere dich bitte über die Funktionsweise und die möglichen Parameter der date-Funktion:

    http://de3.php.net/manual/de/function.date.php

    Die einfachste Möglichkeit sehe ich darin, die normalerweise englischen Wochentage per str_replace durch die jeweils gewünschte Sprache zu ersetzen.
    Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

    Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

    Wer suchet, der findet: http://www.php-resource.de/forum/search.php
    Immer noch nichts? Dann frag!


    Mit freundlichen Grüßen,
    @4u

    Kommentar


    • #3
      der tag (als zahl, z.B. 25) sollte in $tag stehen!
      der monat (z.b. 3) in $monat
      und das jahr (z.b. 1970) in $jahr

      das ganze läßt sich dann auch prima in schleifen einbauen!!

      PHP-Code:
      $wochentage = array (
          
      "Mon" =>"Montag",
          
      "Tue" =>"Dienstag",
          
      "Wed" =>"Mittwoch",
          
      "Thu" =>"Donnerstag",
          
      "Fri" =>"Freitag",
          
      "Sat" =>"Samstag",
          
      "Sun" =>"Sonntag",
      );
      $wtag date ("D"mktime(1,1,1,$monat,$tag,$jahr));


      echo 
      "$wochentage[$wtag]."".$tag." ".$monat." ".$jahr"
      so solltes gehn!!!(nich getestet)
      Die Musikreview Seite

      hi, i'm a signature virus. copy me into your signature to help me spread.

      Kommentar


      • #4
        oder so:

        PHP-Code:

        <?

        $date=date("d.m.Y");

        $time=date("H:i");
        if(date("l")=="Monday")     { $tag="Montag"; }
        if(date("l")=="Tuesday")     { $tag="Dienstag"; }
        if(date("l")=="Wednesday")     { $tag="Mittwoch"; }
        if(date("l")=="Thursday")     { $tag="Donnerstag"; }
        if(date("l")=="Friday")     { $tag="Freitag";      }
        if(date("l")=="Saturday")    { $tag="Samstag";      }
        if(date("l")=="Sunday")     { $tag="Sonntag";      }

        echo "$tag, $date";

        ?>
        Mit freundlichen Grüßen
        Werner

        Kommentar


        • #5
          das kann man aber mit nem "switch"-Befehl schöner machen :-P
          Die Musikreview Seite

          hi, i'm a signature virus. copy me into your signature to help me spread.

          Kommentar


          • #6
            da gibt es mindestens drei Möglichkeiten.
            Ich gehe davon aus, dass du dir das Query-Ergebnis mit $row = mysql_fetch_assoc (oder mysql_fetch_array) holst:

            A)
            1. Du holst dir zusätzlich weekday(datum) as wday
            2. $wday = array('Montag', 'Dienstag', ..., 'Sonnabend', 'Sonntag', );
            3. $datum = $wday[$row['wday']]. ', '. $row['datum2'];

            B) funktioniert nur, wenn setlocale vom Server unterstützt wird (dann aber die tatsächlich einfachste Möglichkeit):
            1. select UNIX_TIMESTAMP(datum) as stamp
            2. setlocale(LC_TIME, 'de_DE');
            3. $datum = strftime('%A, %d.%m.%Y', $row['stamp']);

            C) etwas länger dafür direkt in MySQL:
            @Tartax: Hier ist dein Switch.
            Code:
            select concat (
              [url="http://www.mysql.de/doc/de/Control_flow_functions.html#IDX1128"]case[/url] weekday(datum)
                when 0 then 'Montag'
                when 1 then 'Dienstag'
                ...
                when 5 then 'Sonnabend'
                when 6 then 'Sonntag'
              end,
              date_format(datum, ', %d.%m.%Y')
            ) as datum2 ...
            Zuletzt geändert von Titus; 01.06.2003, 11:55.
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              @Titus: Nur mal so aus Neugier: Wie sieht es denn dabei mit der Kompatibilität zum SQL Standard aus? Ich weiß, mysql hält sich selber nicht dran, aber geht das Beispiel auch mit anderen Datenbanken?
              [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
              [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
              [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

              © Harald Schmidt

              Kommentar


              • #8
                Cool danke ich hab die Mysqlmethode verwendet da ich damit ja schonangefangen habe....

                Jedoch war unten im Beispiel ein Fehler ist da müssen teilweise Leerzeichen raus.......

                Also nochmal besten dank!

                Mfg Gun

                Kommentar

                Lädt...
                X