Problem mit der Datumausgabe!

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

  • Problem mit der Datumausgabe!

    Hallo Zusammen,
    ich schreibe jetzt meinen ersten Beitrag in dieses Forum

    So jetzt zu meinem Problem: ich hab drei Pulldown-Menues mit Tag, Monat und Jahr, diese sind in ein Formular integriert. Ich möchte einfach, daß nach dem drücken des Subbutton er es ausgibt. Bloß er macht es nicht. Was mache ich falsche? Hier mein Quelltext:
    PHP-Code:

    <php?

    if(isset($_POST['ueberpruefung'])) 
      {
       
     $allesok=1;
      
    }
    if($allesok)
    {
     $timestamp=mktime(0,0,0,$_POST['tag'],$_POST['monat'],$_POST['jahr']);
     
     $$timestamp=date(d.m.Y);
    echo $$timestamp;
      }
      
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <link href="css/formular_table.css" rel="STYLESHEET" type="TEXT/CSS" />
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Webstandards-Projekt - Beipiele</title>



    </head>
    <body>
    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
     <select name="tag">
            <?php
             
    for($i 1$i <= 31$i++) 
             {
                echo 
    "<option value=\"".$i."\">".$i."</option>"
         
             }
     
    ?>
     </select> Montat
     <select name="monat">
     <?php
     
    for($i 1$i <= 12$i++) 
     {
     echo 
    "<option value=\"".$i."\">".$i."</option>"
        
     }
    ?>
     </select>Jahr
      <select name="jahr">
     <?php

     $Jahr
    =date("Y")+1;
     
    $EndJahr=$Jahr-110;
          while(
    $Jahr >$EndJahr)
         {
           
    $Jahr--;
            echo 
    "<option value=\"".$Jahr."\">".$Jahr."</option>"

        }
    ?>
     </select>
     <input type="hidden" name="ueberpruefung" value="1">
      <input type="submit" name="Anmeldung" value="Absenden">
      </form>
      

    </body>
    </html>
    Bitte helft mir denn ich habe nicht so richtigen Plan wie ich das machen soll.
    Danke schon mal

  • #2
    mach so:

    PHP-Code:
    if(isset($_POST['ueberpruefung'])) 
      {
       
     
    $allesok=1;
      echo 
    "<pre>";
      
    print_r($_POST);
      echo 
    "</pre>";

    was bekommst du?
    Zuletzt geändert von asp2php; 27.02.2006, 22:26.

    Kommentar


    • #3
      <php?

      das muss wohl <?php heißen



      $timestamp=mktime(0,0,0,$_POST['tag'],$_POST['monat'],$_POST['jahr']);

      $$timestamp=date(d.m.Y);
      echo $$timestamp;


      hier würd ich lieber den längeren weg, mit hilfsvariable, gehen


      und du benutzt mktime falsch.

      mktime ( [int Stunde [, int Minute [, int Sekunde [, int Monat [, int Tag [, int Jahr [, int is_dst]]]]]]] )

      (http://de.php.net/mktime)

      d.h. du musst $_POST['tag'] mit $_POST["monat'] vertauschen.
      Zuletzt geändert von Boron; 27.02.2006, 21:12.

      Kommentar


      • #4
        Original geschrieben von Boron
        $timestamp=mktime(0,0,0,$_POST['tag'],$_POST['monat'],$_POST['jahr']);

        $$timestamp=date(d.m.Y);
        echo $$timestamp;

        hier würd ich lieber den längeren weg, mit hilfsvariable, gehen
        Ich würde lieber gleich darauf verzichten, variable Variablen zu verwenden, wenn man von dem Konzept keinen Schimmer hat.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Also erst einmal danke für die schnellen Antworten.
          Erst einmal zu Boron: ich habe deinen Quelltext bei mir eingefügt, aber es hat nichts bewirkt. Die Bemerkung mit den Hielfsvariablen verstehe ich nicht Kannst du nicht ein Beispiel geben dafür?
          So jetzt zu asp2php: also etwas stimmt bei deinen Code nicht, denn wenn ich jetzt dies Seite aufrufe bekomme zusätzlich zum Menue noch das zu sehen auf der Seite:";
          print_r($_POST);
          echo "

          "; } if($allesok) { $$timestamp=mktime(0,0,0,$_POST['monat'],$_POST['tag'],$_POST['jahr']); $$timestamp=date(d.m.Y); echo $timestamp; } ?>

          Eigentlich hab alle PHP-Bereche geschlossen

          Was muß ich bloß machen damit der das Ausgibt. Ich dachte das wäre das eingachste auf der Welt. Wie man sich täuschen kann.

          Kommentar


          • #6
            Original geschrieben von enger-spenger
            Eigentlich hab alle PHP-Bereche geschlossen
            Aber sicher nicht alle Strings ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Aber sicher nicht alle Strings ...
              Ich hab alles überprüft aber ich sehe keinen String der nicht zu ist.
              Vielleicht sieht ja einer mehr als ich hier der Quellcode noch mal:
              PHP-Code:
              <php?

              if(isset($_POST['ueberpruefung'])) 
                {
                 
               $allesok=1;
                echo "<pre>";
                print_r($_POST);
                echo "</pre>";
                
                
              }
              if($allesok)
              {
               $$timestamp=mktime(0,0,0,$_POST['monat'],$_POST['tag'],$_POST['jahr']);
               
                 $$timestamp=date(d.m.Y);
              echo $timestamp;


                }
                
                
              ?>
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

              <html xmlns="http://www.w3.org/1999/xhtml">
              <link href="css/formular_table.css" rel="STYLESHEET" type="TEXT/CSS" />
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
              <title>Webstandards-Projekt - Beipiele</title>



              </head>
              <body>
              <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
               <select name="tag">
                      <?php
                       
              for($i 1$i <= 31$i++) 
                       {
                          echo 
              "<option value=\"".$i."\">".$i."</option>"
                   
                       }


               
              ?>
               </select> Montat
               <select name="monat">
               <?php
               
              for($i 1$i <= 12$i++) 
               {
               echo 
              "<option value=\"".$i."\">".$i."</option>"
                  
               }
              ?>
               </select>Jahr
                <select name="jahr">
               <?php

               $Jahr
              =date("Y")+1;
               
              $EndJahr=$Jahr-110;
                    while(
              $Jahr >$EndJahr)
                   {
                     
              $Jahr--;
                      echo 
              "<option value=\"".$Jahr."\">".$Jahr."</option>"

                  }
              ?>
               </select>
               <input type="hidden" name="ueberpruefung" value="1">
                <input type="submit" name="Anmeldung" value="Absenden">
                </form>
                

              </body>
              </html>

              Kommentar


              • #8
                Du hast immer noch <php? statt <?php, da kann doch gar nichts funktionieren!

                Also so:
                PHP-Code:
                <?php

                if(isset($_POST['ueberpruefung'])) 
                {
                   
                 
                $allesok=1;
                  
                // zur Fehlerbehebung:
                  // echo "<pre>";
                  // print_r($_POST);
                  // echo "</pre>";
                 
                }
                if(
                $allesok)
                {
                 
                $ts=mktime(0,0,0,$_POST['monat'],$_POST['tag'],$_POST['jahr']);
                 
                 echo 
                date("d.m.Y",$ts);

                }
                ?>
                Zuletzt geändert von Boron; 28.02.2006, 09:33.

                Kommentar


                • #9
                  Hattes recht wahsaga. Ich hatte die Stelle des ? vertauscht muß natürlich heißen <?php. So wenn man jetzt die Seite aufruft wird zusätzlich zum Menue das Aktuelle Datum und Array
                  (
                  [tag] => 9
                  [monat] => 1
                  [jahr] => 2006
                  [ueberpruefung] => 1
                  [Anmeldung] => Absenden
                  )

                  und das ausgeben. Wie mache, daß das akuelle Datum nicht gezeigt wird und das er es nach dem Drücken des Button so an zeigt. z.B.: 19.2.2005

                  Kommentar


                  • #10
                    echo date("d.m.Y",$ts);

                    damit natürlich.


                    (
                    [tag] => 9
                    [monat] => 1
                    [jahr] => 2006
                    [ueberpruefung] => 1
                    [Anmeldung] => Absenden
                    )
                    Diese Ausgabe kommt ja nur aufgrund von

                    echo "<pre>";
                    print_r($_POST);
                    echo "</pre>";

                    zustande. Das kannst du jetzt also wieder rausnehmen, da du siehst, dass alle Variablen korrekt übergeben werden.

                    Kommentar


                    • #11
                      Danke für die Bemerkung Baron.
                      Ich habe inzwischen das Script ein wenig umgeschrieben. Jetzt sieht es so aus:
                      PHP-Code:
                      <?php


                      setlocale
                      (LC_ALL"DEU");
                          
                      $allesok false;
                          if( isset(
                      $_POST['ueberpruefung']) ) {
                              
                      $allesok true;
                          }
                          if( 
                      $allesok ) {
                              
                      $timestamp mktime(000$_POST['monat'], $_POST['tag'], $_POST['jahr']);  
                              
                      $timestamp date('d.m.y',$timestamp);
                              
                      $ausgabe$timestamp;
                               echo 
                      $ausgabe;
                          }

                      ?>
                      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                      <html xmlns="http://www.w3.org/1999/xhtml">
                      <head>
                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                      <title>Datum per Formular</title>
                      </head>
                      <body>
                      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                      <input type="hidden" name="ueberpruefung" value="1" />
                      <select name="tag">
                      <?php
                          
                      for( $i=1$i<=31$i++ ) {
                          if(
                      $_POST['tag'] == $i) {
                                  echo 
                      '<option value="'.$i.'" selected>'.$i.'</option>';
                          }
                          else {
                                  echo 
                      '<option value="'.$i.'">'.$i.'</option>';
                          }
                          }
                      ?>
                      </select>
                      Tag
                      &nbsp; 

                      <select name="monat">
                      <?php
                          
                      for( $i=1$i<=12$i++ ) {
                          if(
                      $_POST['monat'] == $i) {
                                  echo 
                      '<option value="'.$i.'" selected>'.$i.'</option>';
                          }
                          else {
                                  echo 
                      '<option value="'.$i.'">'.$i.'</option>';
                          }
                          }
                      ?>
                      </select> 
                      Monat
                      &nbsp;

                      <select name="jahr">
                      <?php
                          $aktuellesJahr 
                      date('Y');
                          for(
                      $i=($aktuellesJahr 110); $i<=$aktuellesJahr+1$i++ ) {
                          if(
                      $_POST['jahr'] == $i) {
                                  echo 
                      '<option value="'.$i.'" selected>'.$i.'</option>';
                          }
                          else {
                                  echo 
                      '<option value="'.$i.'">'.$i.'</option>';
                          }
                          }
                      ?>
                      </select>    
                      Jahr
                      <br />
                      <input type="submit" name="Anmeldung" value="Absenden" />
                      </form>
                      </body>
                      </html>
                      Solange ich ein Datum ab 1970 einstellt ist alles ok. Aber wenn ich versuche ein Datum vor 1970 einzustellen bekomme eine Fehlermeldung.
                      Mir ist schon bekannt der Unix-Timestamp erst ab 1970 zählt. Deshalb meine frage was muß ich machen damit er mir auch Datums vor 1970 ausgibt? Wäre für jede Anregung dankbar

                      Kommentar

                      Lädt...
                      X