Zahlen in Zeit umwandeln

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

  • Zahlen in Zeit umwandeln

    Hallo Leute,

    ich möchte Zahlen in Zeit umwandeln.

    Ich habe einige Werte z.B.

    0800, 1800, 0030, usw.

    Die ersten beiden Stellen sind Stunden und die letzten beiden Stellen sind die Minuten.

    Wenn ich das im Kopf rechne, ist der Unterschied zw. 0800 und 1800 10 Stunden und wenn ich dann noch 0030 wegrechne sind es 9:30 Stunden. Wenn ich es aber rechne kommt 9,7 heraus.

    Daher müsste ich jetzt die Zahlen in Zeit umrechnen nur weiss ich nicht wie.
    LG, m-werk

  • #2
    Re: Zahlen in Zeit umwandeln

    Code:
    if(nachkommastellen >= .6) {
      if(operation == subtraktion) {
        subtrahiere .4;
      }
      elseif(operation == addition {
        addiere .4;
      }
    }
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      schneide die ersten zwei ziffern ab, entferne die führende null (wichtig!), übergibb beide zahlen an mktime(), erhalte timestamp.

      dann kannst du deine arithmetik durchführen und das ergebnis evtl. mit date() ausgeben.

      Kommentar


      • #4
        Hab ich gemacht. So sieht der Wert original aus 0800

        Dann hab ich es geändert:
        PHP-Code:
        $Ende="0800";

        $END=substr($Ende,0,2)*1;
        $END2=substr($Ende,-2);
        $END3=substr($Ende,1,1);

        $timestamp1 mktime($END,$END2,0,0,0,0);

        $Std4 date("H:i",$timestamp1);

        echo 
        $Std4
        $END sind die ersten beiden stellen 08
        $End2 sind die letzten beiden stellen 00
        $End3 sollte das ergebnis 8 sein.

        Ich kann in der $timestamp1 $End als auch $End3 nehmen.
        Das ergebnis ist immer '00:59'

        Was mach ich da noch falsch?
        LG, m-werk

        Kommentar


        • #5
          So hab das ganze nun weiterverfolgt:

          So sieht mein Code jetzt aus
          PHP-Code:
          $Beginn="0800";
          $Ende="1700;

          $BEG=substr($Beginn,0,2)*1;
          $BEG2=substr($Beginn,-2);

          $END=substr($Ende,0,2)*1;
          $END2=substr($Ende,-2);

          $timestamp1 = mktime($BEG,$BEG2,0,$month,$day,$year);
          $timestamp2 = mktime($END,$END2,0,$month,$day,$year);

          //Das datum wird schon vorher deffiniert

          $timestamp4=$timestamp2-$timestamp1;

          $Std4 = date("H:i",$timestamp4);

          echo 
          $Std4 
          Das ergebnis ist hierbei 10:00

          Das ist genau 1e Stunde zuviel. Es sollte 9:00 dort stehen.

          Weiss da jemand rat?
          LG, m-werk

          Kommentar


          • #6
            ähm mal ganz ehrlich wie soll mktime() denn den 0.0.0 als sekunden ab 1.1.1970 darstellen?

            Kommentar


            • #7
              zeig mal var_dump() von BEG, BEG2 und den timestamps.

              Kommentar


              • #8
                ich weiss es nicht, aber ich bin doch hirmit dem ergebnis ja schon ganz nahe bis auf 1e Stunde. oder täusche ich mich da?
                LG, m-werk

                Kommentar


                • #9
                  ja, jetzt hast du auch vermutlich ein datum definiert, was nicht über 2000 Jahre her ist.

                  Würde aber auch gerne mal konkrete Werte sehen

                  Kommentar


                  • #10
                    var_dump habe ich jetzt gemacht:

                    $BEG zeigt: int(8)
                    $BEG2 zeigt: string(2) "00"
                    $END zeigt: int(17)
                    $END2 zeigt: string(2) "00"
                    $timestamp1 zeigt: int(1159250400)
                    $timestamp2 zeigt: int(1159282800)
                    LG, m-werk

                    Kommentar


                    • #11
                      PHP-Code:
                      echo date('r'1159282800)."<br>";
                      echo 
                      date('r'1159250400)."<br>";
                      echo 
                      date('r'1159282800-1159250400)."<br>"
                      [ ] Als intelligenten Menschen fällt uns etwas auf
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Zeitzone !!!

                        Das ist mein Ergebnis:

                        Thu, 01 Jan 1970 10:00:00 +0100

                        Zuletzt geändert von m-werk; 19.10.2006, 14:37.
                        LG, m-werk

                        Kommentar


                        • #13
                          OffTopic:
                          Bravo! Über ihren Aufnahmeantrag in den Kreis der für intelligent befundenen Lebensformen wird demnächst entschieden.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            hm.. eine zeitzone, die dich um ca. 36 jahre zurückversetzt? welche solls denn sein?

                            frage: weißt du, was ein timestamp ist?

                            Kommentar


                            • #15
                              Ein Timestamp ist, soviel ich weiss, ein Zeitstempel mit beginn 01.01.1970
                              LG, m-werk

                              Kommentar

                              Lädt...
                              X