Datumsausgabe

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

  • Datumsausgabe

    Hallo,

    also erst mal vorweg ich bin in PHP noch in noob ;-)

    Ich habe ein Eventsscript wo das Datum im englishen Format in SQL gespeichert wird.

    Ich würde aber gern das er beim auflisten der Events das Datum im Deutschen Format anzeigt.
    Und der Tag und der Monat sollten zweistellig ausgegeben werden.
    Also nicht 1 sondern 01.
    Am besten wäre natürlich wenn ich das gleich in Deutsch posten könnte aber es sind einige abfragen in den scripten.


    HIer mal das Komplette script:
    http://ui.worldofwar.net/ui.php?id=1934
    ( Ist ein Eventplaner für World of Warcraft )

    Und hier mal das Script wo das Datum gepostet wird.
    Scripte sind gekürzt da sonst der inhalt zu groß für diesen Post wäre ;-)

    PHP-Code:
              echo "<tr>";
            echo 
    "<td align=center>";
            echo 
    "<table width='100%'  border='0'>";

                    echo 
    "<tr><td align=left>";
                    echo 
    $lang_pr['date']." :";
                    echo 
    "</td><td align=left>";

                    echo 
    "<select name='year' size='1'>";
                    for (
    $i 2006$i <= 2010$i++)
                    {    echo 
    "<OPTION VALUE='".$i."'>".$i;
                    }
                    echo 
    "</select>";
                    echo 
    "<select name='month' size='1'>";
                    for (
    $i 01$i <= 12$i++)
                    {    echo 
    "<OPTION VALUE='".$i."'>".$i;
                    }
                    echo 
    "</select>";
                    echo 
    "<select name='day' size='1'>";
                    for (
    $i 01$i <= 31$i++)
                    {    echo 
    "<OPTION VALUE='".$i."'>".$i;
                    }
                    echo 
    "</select>";
                    echo 
    "</td></tr>";

                    echo 
    "<tr><td align=left>";
                    echo 
    $lang_pr['time']." :";
                    echo 
    "</td><td align=left>";
                    echo 
    "<input name='hour' type='text' value='19:00 Uhr' />";
                    echo 
    "</td></tr>"
    Wie kann man in diesen Script den befehl setzen das der Tag und der Monat zweistellig gespeichter werden ? ( nicht 1 sondern 01 )



    HIer werden die Events ausgelesen und in einer Tabelle aufgelistet.

    PHP-Code:
    function quote_smart($value)
    {  
    // Stripslashes
       
    if (get_magic_quotes_gpc())
       {    
    $value stripslashes($value);
       }
       
    // Quote if not integer
       
    if (!is_numeric($value))
       {    
    $value "'" mysql_real_escape_string($value) . "'";
       }
       return 
    $value;
    }

    include (
    "inc/isfuture.php");
     
    date("d M Y H:i:s"strtotime($your_row['lastlogin_date']));

    echo 
    "<table width='100%' border=0>";

    if (
    $past=="1" and isset($_COOKIE['PhpNukeRaid_P_realm']))
    {    
    $sql "SELECT * FROM nuke_raid_events where date < now() and realm = ".quote_smart(urldecode($HTTP_COOKIE_VARS["PhpNukeRaid_P_realm"]))." order by date desc, event_id desc";
    }
    elseif    (
    $past=="1" and !isset($_COOKIE['PhpNukeRaid_P_realm']))
    {    
    $sql "SELECT * FROM nuke_raid_events where date < now() order by date desc, event_id desc";
    }
    elseif (
    $past<>"1" and isset($_COOKIE['PhpNukeRaid_P_realm']))
    {    
    $sql "SELECT * FROM nuke_raid_events where date >= now() and realm = ".quote_smart(urldecode($HTTP_COOKIE_VARS["PhpNukeRaid_P_realm"]))." order by date desc, event_id desc";
    }
    elseif    (
    $past<>"1" and !isset($_COOKIE['PhpNukeRaid_P_realm']))
    {    
    $sql "SELECT * FROM nuke_raid_events where date >= now() order by date desc, event_id desc";
    }

    $result $db->sql_query($sql);

    if (
    mysql_num_rows($result)==0)
    {    echo 
    "<tr><td colspan=10 align=center>";
        echo 
    $lang_pr['monopoly'];
        echo 
    "</td></tr>";
    }
    else
    {    while (
    $row $db->sql_fetchrow($result))
        {    echo 
    "<tr><td>";
            echo 
    "<a href='".$page_index."&inst=".$row['event_id']."'>".$lang_pr[$row['choice_inst']]."</a>\n";
            echo 
    "</td>";

            echo 
    "<td>";
            echo 
    $row['date'];
            echo 
    "</td>";

                    echo 
    "<td>";
            echo 
    $row['hour'];
            echo 
    "</td>"
    Um die Events zu bearbeiten gibt es dann eine weitere datei wo auch das datum aufgerufen wird.

    PHP-Code:
            echo "<tr><td align=left>";
                  echo 
    $lang_pr['date']." :";
                  echo 
    "</td><td align=left>";

            If (
    $isowner and $isfuture)
             {    echo 
    "<select name='year' size='1'>";
                   for (
    $i 2005$i <= 2010$i++) 
                   {    If (
    $i==$year)
                       {echo 
    "<OPTION VALUE='".$i."' selected>".$i;
                       }
                       else
                       {echo 
    "<OPTION VALUE='".$i."'>".$i;}
                }
                   echo 
    "</select>";
                   echo 
    "<select name='month' size='1'>";
                   for (
    $i 1$i <= 12$i++)
                   {    If (
    $i==$month)
                       {echo 
    "<OPTION VALUE='".$i."' selected>".$i;
                       }
                       else
                       {echo 
    "<OPTION VALUE='".$i."'>".$i;}
                }
                   echo 
    "</select>";
                   echo 
    "<select name='day' size='1'>";
                   for (
    $i 1$i <= 31$i++)
                   {    If (
    $i==$day)
                       {echo 
    "<OPTION VALUE='".$i."' selected>".$i;
                       }
                       else
                       {echo 
    "<OPTION VALUE='".$i."'>".$i;}
                }
                   echo 
    "</select>";
             }
             else
             {    echo 
    $row['date'];
             }
                  echo 
    "</td></tr>"
    Dann gibt es noch eine datei die sich isfuture nennt hier denke ich müßte auch was geändert werden.

    PHP-Code:
    <?function date_compare ( $b_year, $b_month, $b_day )
    {    //returns -1 = past
        //returns 0 = today
        //returns 1 = future
        $a_year = date(Y);
        $a_month = date(m);
        $a_day = date(d);
        $final_result = 9;
        if($a_year < $b_year)
        {    $final_result = 1;
        }
        else if($a_year == $b_year)
        {    if($a_month < $b_month)
           {    $final_result = 1;
           }
           else
           if($a_month == $b_month)
           {    if($a_day < $b_day)
                {    $final_result = 1;
                }
                else if($a_day == $b_day)
                {    $final_result = 0;
                }
                else
                {    $final_result = -1;
                }
           }
           else
           {    $final_result = -1;
           }
        }
        else
        {  $final_result = -1;
        }
        return $final_result;
    }
    ?>
    Thx schon mal im voraus

    Wenn ihr noch weitere infos braucht, reiche ich die gern nach.

  • #2
    erst den code umbrechen!
    Wie kann man in diesen Script den befehl setzen das der Tag und der Monat zweistellig gespeichter werden ? ( nicht 1 sondern 01 )
    du weißt schon, dass
    Code:
    09 != 9
    oder? lies dir http://de.php.net/manual/en/language.types.integer.php durch. was du brauchst ist number_format() oder sprintf().

    mit dem rest deines codes kann ich nichts anfangen. kann aber mit einem pauschalen vorurteil gegen solche frickeleien behaupten, dass du dich mal lieber besser über sql-eigene datumsfunktionen anschauen sollst.

    Kommentar


    • #3
      @penizilin
      Etwas verstehe ich dabei nicht und vllt kannst du mich aufklären. Und zwar der Vergleich von 09 zu 9
      Zuerst dachte ich die müssten zumindest so 09 == 9 korrekt sein ('09' == 9 ist korrekt). Der Vergleich ergibt aber false.
      Wie kann das sein wenn ein echo gettype(09) int ergibt ? Dann müsste doch beim Vergleich ein true herauskommen ? Bzw müsste doch dann sogar das korrekt sein 09 === 9 (beides Integer)

      Danke für die Aufklärung
      Gruss und gute Nacht

      tobi
      EDIT:

      Habe es gerade rausgefunden --> ein intval(09) ergibt 0 und nicht 9 wie ich gedacht hatte und 0 != 9 oder 0 !== 9 ist dann wohl logisch...
      Habe etwas gepennt

      Zuletzt geändert von jahlives; 05.03.2006, 22:31.
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        das ist richtig, 09 ist auch ein integer. aber integer != integer, wenn man so will. schau mal im manual:

        Integers can be specified in decimal (10-based), hexadecimal (16-based) or octal (8-based) notation, optionally preceded by a sign (- or +).
        weiter:
        If you use the octal notation, you must precede the number with a 0 (zero),
        und die zahl 09 gibt es im oktalsystem nicht. mehr ist (glaube ich) nicht zu erklären, ich denke das hier wirst du schon lange kennen. oder?

        Kommentar


        • #5
          Danke penizilin so wirds ein wenig klarer.
          Nur frage ich mich noch warum ein String '09' zu 9 konvertiert wird (bei einem Vergleich mit einem int) und 09 als oktal angesehen wird v.a. da 09 oktal ja gar nicht existiert.

          Danke und Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Nur frage ich mich noch warum ein String '09' zu 9 konvertiert wird (bei einem Vergleich mit einem int) [...]
            das weiß ich nicht. schau dir http://de.php.net/manual/en/language...string.casting an, vielleicht wirst du daraus schlau. ich hab's nicht verstanden - aber vielleicht halten es die entwickler für praktisch.

            Kommentar


            • #7
              Salut penizilin

              danke für den Link. Das lernt man doch immer noch was Aber leider fand ich die Antwort wegen der Typenkonvertierung darin nicht.
              Mag sein, dass das die Entwickler für gut befinden, aber ich persönlich finde, dass das inkonsequent umgesetzt ist (my 5 cents)

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar

              Lädt...
              X