Ankündigung

Einklappen
Keine Ankündigung bisher.

Alter berechnen

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Alter berechnen

    Ich hab hier mal was altes ausgegraben, sollte sich anhand des Titels und dem Code von selbst erklären:


    PHP-Code:
    <?php 
       $tag 
    19
       
    $mon 4
       
    $jah 1985

       
    $jetzt mktime(000date('m'), date('d'), date('Y')); 
       
    $gebur mktime(000$mon$tag$jah); 
       
    $age   intval(($jetzt $gebur) / (3600 24 365)); 

       echo 
    $age ' Jahre alt'
    ?>
    Könnte man auch in eine funktion stecken..
    Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.


  • #2
    Zitat von Ambience Beitrag anzeigen
    Ich hab hier mal was altes ausgegraben, sollte sich anhand des Titels und dem Code von selbst erklären:


    PHP-Code:
    <?php 
       $tag 
    19
       
    $mon 4
       
    $jah 1985

       
    $jetzt mktime(000date('m'), date('d'), date('Y')); 
       
    $gebur mktime(000$mon$tag$jah); 
       
    $age   intval(($jetzt $gebur) / (3600 24 365)); 

       echo 
    $age ' Jahre alt'
    ?>
    Könnte man auch in eine funktion stecken..

    mach ich ma

    PHP-Code:
    <?php
    function alter($tag,$mon,$jah){
        
    $jetzt mktime(000date('m'), date('d'), date('Y')); 
       
    $gebur mktime(000$mon$tag$jah); 
       return 
    $age   intval(($jetzt $gebur) / (3600 24 365)); 
      }

    ?>

    Kommentar


    • #3











      nice, nice nice
      Ich gebe gerne ICQ-Support gegen ein kleines Endgelt.

      Kommentar


      • #4
        Wenn wir hier beim Thema Alter sind... ich hab mal eine Alterabfrage aus Langeweile geschrieben... also natürlich unsicher, da jeder ein beliebiges Datum eintragen kann... bei ehrlichen Mitbürgern sollte er aber funktionieren. Die Daten werden aus dem unten stehenden Formular geholt..
        entschuldigt meine unschönen Formulierungen bei falschen Angaben (alter > 110) ^^ In der Variable $alter kann das Alter festgelegt werden, das mindestens erreicht sein sollte. Statt "Du darfst rein" kann natürlcih dann auf die Seite umgeleitet werden o.Ä... der Code ist so lang geworden, ad er auf den Tag genau testet...

        rechner.php:
        PHP-Code:
        <?php
        $alter
        ="18";

        $monat=$_POST['monat'];            ## Geburtsdatum aus dem Formular lesen ##
        $tag=$_POST['tag'];
        $jahr=$_POST['jahr'];

        $heute_monat=date("n");            ## Aktuelles Datum holen ##
        $heute_tag=date("j");
        $heute_jahr=date("Y");

        $dif_jahr=$heute_jahr-$jahr;

        if(
        $dif_jahr<"110")                 ## damit man auch nich verarscht wird ;-) ## 
        {

           if(
        $dif_jahr>$alter)     ## Jahrestest ##
             
        {
             
        $auth="ok";
             }
             else if(
        $dif_jahr==$alter AND $monat<$heute_monat)  ## Monatstest ##
               
        {
                 
        $auth="ok"
               }
               else if(
        $dif_jahr==$alter AND $monat==$heute_monat AND $tag<=$heute_tag## Tagestest ##
               
        {
                 
        $auth="ok";
               }
         
           if(
        $auth=="ok")               ## Ausgabe ##
             
        {
             echo 
        "Du darfst rein!";
             }
           else
             {
             echo 
        "Tut mir leid. Du musst <b>$alter</b> sein um hier rein zu kommen!";
             }
                                                                                            
        }
        else 
        {
        echo 
        "Hey! Hör auf mich zu verarschen. Du bist nicht wirklich ".$dif_jahr."!";   ## wobei wir wieder beim verarschen wären ##
        }

             
        ################################
             #                              #
             #   (C) 2007 by Max Dittmann   #
             #     www.maxdittmann.de.vu    #
             #                              #
             ################################
          
        ?>
        abfrage.php:
        Code:
        <html><head></head><body>
        <form action="rechner.php" method=post>
        Tag: 
        <select name="tag">
        <option>01</option>
        <option>02</option>
        <option>03</option>
        <option>04</option>
        <option>05</option>
        <option>06</option>
        <option>07</option>
        <option>08</option>
        <option>09</option>
        <option>10</option>
        <option>11</option>
        <option>12</option>
        <option>13</option>
        <option>14</option>
        <option>15</option>
        <option>16</option>
        <option>17</option>
        <option>18</option>
        <option>19</option>
        <option>20</option>
        <option>21</option>
        <option>22</option>
        <option>23</option>
        <option>24</option>
        <option>25</option>
        <option>26</option>
        <option>27</option>
        <option>28</option>
        <option>29</option>
        <option>30</option>
        <option>31</option>
        </select>
        Monat:
        <select name="monat">
        <option value="01">Januar</option>
        <option value="02">Februar</option>
        <option value="03">März</option>
        <option value="04">April</option>
        <option value="05">Mai</option>
        <option value="06">Juni</option>
        <option value="07">Juli</option>
        <option value="08">August</option>
        <option value="09">September</option>
        <option value="10">Oktober</option>
        <option value="11">November</option>
        <option value="12">Dezember</option>
        </select>
        Jahr: <input name="jahr" maxlength=4><p>
        <input type=submit value="O K">
        </body></html>

        Kommentar


        • #5
          Zitat von fragnicht Beitrag anzeigen
          mach ich ma

          PHP-Code:
          <?php
          function alter($tag,$mon,$jah){
              
          $jetzt mktime(000date('m'), date('d'), date('Y')); 
             
          $gebur mktime(000$mon$tag$jah); 
             return 
          $age   intval(($jetzt $gebur) / (3600 24 365)); 
            }
           
          ?>
          Die Funktion berücksichtigt kein Schaltjahr.

          Kommentar


          • #6
            nimmt mktime die nicht automatisch mit?

            Kommentar


            • #7
              mktime schon aber diese Zeile
              return $age = intval(($jetzt - $gebur) / (3600 * 24 * 365));
              nicht

              Kommentar


              • #8
                PHP-Code:
                 function age($age) {
                    
                $Y date("Y") - date("Y"$age) - 1;
                    if (
                intval(date("m"$age).date("d"$age)) < intval(date("m").date("d")))
                     
                $Y++;
                    return 
                $Y;
                 } 
                is meine die geht auch bis jetz ganz gut

                Kommentar


                • #9
                  Oder einfach so
                  PHP-Code:
                  <?php
                  $alter 
                  floor((date("Ymd") - date("Ymd"$meinGebTimestamp)) / 10000);
                  ?>
                  "Mein Name ist Lohse, ich kaufe hier ein."

                  Kommentar


                  • #10
                    /10000 ? *Grübel*
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      Zwei Ziffern für den Monat, zwei für den Tag, vier Stellen zusammen
                      / 1000 -> Komma um vier Stellen nach links verschieben.
                      Bleibt nur noch die Jahreszahl vor dem Komma und MonatTag nach dem Komma.

                      Kommentar


                      • #12
                        Ach so, sorry ich war noch bei timestamps. Clevere Lösung.
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          Apropos Timestamp, das müsste bei MySQL auch gehen mit DATE/TIMESTAMP Feldern. Die werden bei numerischer Darstellung auch als 20080522 abgebildet.

                          Kommentar


                          • #14
                            Wow... ziemlich viel Vorarbeit... und viele nützliche Tipps. Als nach kurzer Überlegung bin ich dann zu folgenden Resultat gekommen.

                            alterscheck.php
                            PHP-Code:
                            <?php
                            session_start
                            ();
                            if(
                            $_REQUEST[ok]){
                                
                            $mindestalter 18;
                                
                            $form[monat]    =$_POST[monat];            ## Geburtsdatum aus dem Formular lesen ##
                                
                            $form[tag]        =$_POST[tag];
                                
                            $form[jahr]        =$_POST[jahr];
                                
                                
                            $geburtstag mktime(0,0,0,$form[monat],$form[tag],$form[jahr]);
                                
                            $heute    =date("Ymd");            ## Aktuelles Datum holen ##
                                
                                
                            $alter floor((date("Ymd") - date("Ymd"$geburtstag)) / 10000);
                                if(
                            $alter $mindesalter){
                                    
                            $_SESSION[alter] = true;
                                    
                            # Weiterleitung zur Altersgeprüften Seite
                                    
                            header('location: http://www.meineseite/members.php');
                                    }else{
                                    echo 
                            "<p>&Uuml;berpr&uuml;fe nochmal Deine Altersangabe";
                                    }
                                }

                            $monate = array("1"=>"Januar","2"=>"Februar","3"=>"M&auml;rz","4"=>"April","5"=>"Mai","6"=>"Juni","7"=>"Juli","8"=>"August","9"=>"September","10"=>"Oktober","11"=>"November","12"=>"Dezember");
                            echo 
                            "
                            <html>
                                <head>
                                </head>
                                <body>
                                <form method=post>
                                    <table>
                                        <tr>
                                            <td>Tag:</td>
                                            <td>
                                                <select name=\"tag\">"
                            ;
                                                for(
                            $x=1;$x<=31;$x++){
                                                    if(
                            $_REQUEST[tag] == $x){$sel_tag[$x] = 'selected';}
                                                    echo 
                            "<option value=$x ".$sel_tag[$x].">".sprintf("%02d",$x)."</option>";
                                                    }
                                          echo 
                            "</select></td>
                                            <td>Monat:</td>
                                            <td><select name=\"monat\">"
                            ;
                                            foreach(
                            $monate as $zelle => $wert){
                                                if(
                            $_POST[monat] == $zelle){$sel_monat[$zelle] = 'selected';}
                                                echo 
                            "<option value=$zelle ".$sel_monat[$zelle].">$wert</option>";
                                                }
                                         echo 
                            "</select></td>
                                            <td>Jahr:</td>
                                            <td><select name=\"jahr\">"
                            ;
                                                
                            # Wir gehen mal davon aus, das niemand älter als 100 wird ;-)
                                                
                            for($x=date("Y")-100;$x<=date("Y",time());$x++){
                                                if(
                            $_POST[jahr] == $x){$sel_jahr[$x] = 'selected';}
                                                    echo 
                            "<option value=$x ".$sel_jahr[$x].">$x</option>";
                                                    }
                                         echo 
                            "</select></td>
                                            <td><input type=submit value=\"O K\" name=ok></td>
                                        </tr>
                                    </table>
                                </form>
                                </body>
                            </html>"
                            ;
                            ?>
                            Das mit den Monaten hab ich beabsichtig so gelöst, dadurch lässt sich die Variable $monate später in eine Sprachdatei exportieren aber das ein anderes Projekt.

                            check.php
                            PHP-Code:
                            <?php
                            if($_SESSION[alter] == false){
                                
                            header ('location: alterscheck.php');
                                }
                            ?>
                            und so sieht dann die members.php aus.
                            PHP-Code:
                            <?php
                            session_start
                            ();
                            include(
                            'check.php');
                            ######## Es folgt der Seiteninhalt #########
                            ?>

                            Kommentar


                            • #15
                              Also erstens muss man bei deinem Skript wohl erst 19 sein und zweitens ist das hier "&Uuml;berpr&uuml;fe nochmal Deine Altersangabe" ja wohl eher eine Anstiftung zum Geburtsdatum fälschen? Was soll die Abfrage dann überhaupt?
                              "Mein Name ist Lohse, ich kaufe hier ein."

                              Kommentar

                              Lädt...
                              X