[PHP] UNIX Timestamp wert auswerten



  • Hi Leute.

    Also ich habe die Aufgabe man soll sein Geburtstadum in ein Formular eingeben wonach dann gesagt wird wie alt man ist.

    meine datei heisst "alterermitteln.php"
    Ich habe mit den drei Feldern "Tag", "Monat" und "Jahr" einen Weg gefunden die Drei werte ins entsprechende Unix-Timestamp umzuwandeln.
    Anschliessend ermittle ich den Timestamp vom aktuellen Moment und rechne den Timestamp $damals minus den Timestamp $jetzt. somit habe ich die differenz zwischen beiden.

    Als nächsten Schritt müsste ich den Differenzwert auf Jahre bringen...
    Ein Wert 1046180971 Sekunden bringt mich da nicht wirklich weiter.
    Eine Lösung wäre natürlich das ganze rechnerisch zu lösen aber ich strebe eine Lösung über irgendeine datums/zeit-funktion an...kann mir jemand weiterhelfen?

    Das ist der Code meiner Site:

    <html>
    <head>
    <title>Zinsen ermitteln</title>
    <style>
    <!--
    .input
    {
        font-family: Arial;
        font-size: 10;
        font-weight: bold;
        border-color: #FFFFFF;
        border-style: none;
        border-width: 2;
        padding-left: 2px;
        padding-right: 2px;
        padding-top: 0px;
        padding-bottom: 0px}
    //-->
    </STYLE>
    </head>
    
    <body bgcolor="#000000">
    <center>
    <?
    if (isset($_POST["Tag"]) && isset($_POST["Monat"]) && isset($_POST["Jahr"]))
    {
    $jetzt = time();
    $damals = mktime(0,0,0, $_POST["Monat"], $_POST["Tag"], $_POST["Jahr"]);
    $unterschied = $jetzt - $damals;
    echo date("U");
    
    }
    ?>
    <form action="alterermitteln.php" method="post" >
    <input type="text" class="input" name="Tag" size="5">
    <input type="text" class="input" name="Monat" size="5">
    <input type="text" class="input" name="Jahr" size="5">
    <input type="submit" class="input" value="Absenden">
    </form>
    </center>
    
    </table>
    </body>
    </html>
    

    [ Dieser Beitrag wurde am 25.02.2003 um 14:52 Uhr von Peter Piksa editiert. ]



  • In was für einem Format willst du die Zeitdifferenz denn haben? Denn ein Jahr kann 365 oder 366 Tage haben, ebenso beim Monat (zw. 28 und 31 Tage) 🙄



  • Ich würde auch nicht mit Unix-Timestamp arbeiten. Ich würde einfach die Jahre voneinander subtrahieren, danach den Monat usw (musst du natürlich den übertrag beachten, dass du nix negatives rausbekommst)



  • Also ich habe keine Funktion gefunden und paar Freunde von mir die PHP machen, wussten sich da auch nicht zu helfen. Die berechnung wird nun mit einer normalen Berechnung gemacht...ahm ich meine die Auswertung wie alt man ist.

    Einziges Problem ist dass der Unix TimeStamp 1970 beginnt. wenn ich nun eingebe dass ich als beispiel am 17.6.1950 geboren bin, dann ist alles fürn *****.
    hab schon überlegt dass ich vielleicht die sekunden von 1970 + die sekunden von (1970-1950) zusammenrechne aber datt geht irgendwie auch nüd...

    gibt es vielleicht eine Funktion die bei 1.1. nach Christus anfängt zu zählen? 😃 😕

    Der Aktuelle Code ist nun übrigends der hier:

    <html>
    <head>
    <title>Ermitteln des Alters</title>
    <style>
    <!--
    .input
    {
        font-family: Arial;
        font-size: 10;
        font-weight: bold;
        border-color: #FFFFFF;
        border-style: none;
        border-width: 2;
        padding-left: 2px;
        padding-right: 2px;
        padding-top: 0px;
        padding-bottom: 0px}
    //-->
    </STYLE>
    </head>
    
    <body bgcolor="#000000" font-face="Verdana">
    <center>
    <?
    if (isset($_POST["Tag"]) && isset($_POST["Monat"]) && isset($_POST["Jahr"]))
    {
    
    $jetzt = time();
    $damals = mktime(0,0,0, $_POST["Monat"], $_POST["Tag"], $_POST["Jahr"]);
    $unterschied = $jetzt - $damals;
    echo "<font face=Verdana size=1 color=#FFFFFF>";
    
    echo "Du bist $unterschied Sekunden alt <br>";
    
    $Minuten = $unterschied/60;
    $Minuten = round($Minuten,2);
    echo "Du bist $Minuten Minuten alt <br>";
    
    $Stunden = $Minuten/60;
    $Stunden = round($Stunden,2);
    echo "Du bist $Stunden Stunden alt <br>";
    
    $Tage = $Stunden/24;
    $Tage = round($Tage,2);
    echo "Du bist $Tage Tage alt <br>";
    
    $Jahre = $Tage/365;
    $Jahre = round($Jahre,2);
    echo "Du bist $Jahre Jahre alt";
    
    }
    ?>
    <form action="alterermitteln.php" method="post" >
    <input type="text" class="input" name="Tag" size="5">
    <input type="text" class="input" name="Monat" size="5">
    <input type="text" class="input" name="Jahr" size="5">
    <input type="submit" class="input" value="Absenden">
    </form>
    </center>
    
    </table>
    </body>
    

    [ Dieser Beitrag wurde am 25.02.2003 um 17:54 Uhr von Peter Piksa editiert. ]



  • Geht es dir nur um die Jahre, oder auch um Monat, Tag, Stunde, Minute, Sekunde, (ms, ns 😃 )?



  • Falls du nur an den Jahren interessiert bist:

    <?
     $alter = date("Y") - $_POST["Jahr"];
     if( time() < mktime(0,0,0,$_POST["Monat"],$_POST["Tag"],date("Y") ) {
      // hatte dieses Jahr noch nicht Geburtatag
      $alter--;
     }
    ?>
    


  • Flenders, ich hab deinen Code mal eingebaut in mein Script und das läuft sogar einwandfrei. Jetzt werd ich nur noch mal auf www.php.net nachschauen was du da alles genau machst 🙂 bigTHX


Anmelden zum Antworten