Ankündigung

Einklappen
Keine Ankündigung bisher.

mit mktime wird der Timestamp nicht richtig erzeugt

Einklappen

Neue Werbung 2019

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

  • mit mktime wird der Timestamp nicht richtig erzeugt

    Hallo,

    ich brüte hier über einem Problem, und ich werde fast wahnsinnig damit - Ich möchte, dass Benutzereingaben eines Datums und einer Uhrzeit mit mktime zu einem timestamp zusammengefügt werden:

    Das Datum liegt in der Form DD.MM.YYYY vor, die Uhrzeiten für Beginn und Ende in der Form HH:MM.

    Per substr() werden die Eingaben "zurechtgestutzt" und danach zusammengefügt, um sie an mktime() übergeben zu können:

    Code:
    $sekunden = "00";
    $tag = substr($_POST[Datum], 0, 2);
    $monat = substr($_POST[Datum], 3, 2);
    $jahr = substr($_POST[Datum], 6, 4);
    $stunden_beginn = substr($_POST[Beginn], 0, 2);
    $minuten_beginn = substr($_POST[Beginn], 3, 2);
    $stunden_ende = substr($_POST[Ende], 0, 2);
    $minuten_ende = substr($_POST[Ende], 3, 2);
    
    $starter = $stunden_beginn . "," . $minuten_beginn . "," . $sekunden . "," . $monat . "," . $tag . "," . $jahr;
    
    $end = $stunden_ende . "," . $minuten_ende . "," . $sekunden . "," . $monat . "," . $tag . "," . $jahr;
    Soweit, so gut - Lasse ich $starter und $end ausgeben, bekomme ich exemplarisch Werte für $starter: 10,00,00,12,20,2005 und für $end: 10,01,00,12,20,2005.

    Will ich daraus jetzt einen Timestamp erzeugen:

    Code:
    echo mktime($starter);
    echo "
    ";
    echo mktime($end);
    gibt er mir für beide Werte exakt den gleichen Timestamp aus: 1128845704.

    Ich hab keine Ahnung, an was das liegen soll. Kann mir von euch vielleicht jemand weiterhelfen?

    Danke,
    Gruß
    Christian

  • #2
    Das liegt daran, dass du das ganze in einen String verkettest. Du musst das schon so schreiben:
    PHP-Code:
    <?php
    mktime
    ($stunden_beginn$minuten_beginn$sekunden$monat);
    ?>
    Ansonsten wandelt PHP deinen String in einen Integer um (also bei beiden in 10) und der Rest wir durch die aktuelle Zeit ersetzt.

    Kommentar


    • #3
      Super, das war's - vielen Dank

      Kommentar

      Lädt...
      X