Zeitformatierung von Sekunden in 00:00:00

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

  • #31
    PHP-Code:
    //irgendwo in deinem Code von Vorteil nachdem der Wert aus DB gelesen wurde
    var_dump($tempi); 
    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #32
      Also

      Folgenden Code habe ich eingebunden:

      PHP-Code:
      <?php
      $temp 
      date('j:h:i:s',$data->usedpl);
      var_dump($tempi);
      $tempi explode(':',$temp);
      $tempi[1] += ($tempi[0] -1) * 24;

      echo 
      $tempi[1].':'.$tempi[2].':'.$tempi[3];
      ?>
      Folgende Ausgabe macht das Scirpt:

      NULL 1:00:00 bzw: var_dump($tempi);

      In der Datenbank steht nach wie vor folgende Zahl:

      618367

      Gruß Thomas

      Kommentar


      • #33
        PHP-Code:
        //und jetzt nochmal richtig
        $temp date('j:h:i:s',$data->usedpl);
        $tempi explode(':',$temp);
        //du kannst nie auf eine Var zugreifen bevor sie nicht initialisiert ist
        var_dump($tempi);
        $tempi[1] += ($tempi[0] -1) * 24;
        echo 
        $tempi[1].':'.$tempi[2].':'.$tempi[3]; 
        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #34
          wieder was gelernt

          und hier die Ausgabe:

          array(4) { [0]=> string(1) "1" [1]=> string(2) "01" [2]=> string(2) "00" [3]=> string(2) "00" } 1:00:00

          Kommentar


          • #35
            Und jetzt an gleicher Stelle noch ein
            PHP-Code:
            var_dump($data->usedpl); 
            Hast du nun die Ausgabe des ausgewählten Timestamps ?

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #36
              Das
              PHP-Code:
              var_dump($data->usedpl); 
              bringt NULL zurück

              Kommentar


              • #37
                wenn ich folgendes rein schreibe:

                PHP-Code:
                <?php $stunden = (int)($data->usedpl3600);
                $sekunden -= $stunden 3600;
                $data->usedpl-= $stunden 3600;
                $minuten = (int)($data->usedpl60);
                $data->usedpl-= $minuten 60;
                if 
                    (
                $minuten <= 9)
                       {
                       
                $minuten "0".$minuten;
                       }
                if (
                $data->usedpl<= 9)
                       {
                       
                $data->usedpl"0".$data->usedpl;
                       }
                echo 
                $stunden.':'.$minuten.':'.$data->usedpl;?>
                kommt das richtige

                171:46:07

                Gruß Thomas

                Kommentar


                • #38
                  Du weisst aber schon was das heisst wenn ein var_dump() einer Var wo du einen Wert erwartest NULL zurückgibt.
                  Entweder hast du die Var gar nicht mit einem Wert belegt resp initialisiert oder, in deinem Fall, das Objekt.
                  Wir hätten uns wohl etliche Postings ersparen können, wenn du mal an verschiedenen Stellen debuggt hättest
                  Hättest dann rausgefunden dass du wahrscheinlich folgendes vergessen hast
                  PHP-Code:
                  $data = new object
                  Schön, dass es jetzt läuft. Werde zuhause meinen Code aber auch mal testen, weil dieser imho funzen müsste

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #39
                    @topicstarter
                    Habe den Code jetzt mal noch angepasst, dass es so auch möglich ist Zeitdauer grösser als 1 Jahr in Sekunden als Zeitstempel zu übergeben. Auch ist's jetzt in einem Form zum testen
                    PHP-Code:
                    <?php
                    if(isset($_POST['senden']) && $_POST['sekunden'] > 0){
                        
                    $temp date('y:z:H:i:s',$_POST['sekunden']);
                        list(
                    $jahre,$tage,$stunden,$minuten,$sekunden) = explode(':',$temp);
                        
                    $tage += ($jahre-70)*365;
                        
                    $stunden += $tage*24-1;
                        if(
                    $stunden 10){
                            echo 
                    '0'.$stunden.':'.$minuten.':'.$sekunden;
                        }else{
                            echo 
                    $stunden.':'.$minuten.':'.$sekunden;
                        }
                    }else{
                    ?>
                        <html>
                        <head>
                        <title>Test f&uuml;r Sekunden und Dauer</title>
                        </head>
                        <body>
                        <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
                        <input type="text" name="sekunden" /><br />
                        <input type="submit" name="senden" value="Senden" />
                        </form>
                        </body>
                        </html>
                    <?php
                    }
                    ?>
                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #40
                      Völlig unabhängig von date() und time() oder so:

                      PHP-Code:
                      <?php
                      $zeit 
                      618367;

                      $sekunden 0;
                      $minuten  0;
                      $stunden  0;
                      $tage     0;
                      $jahre    0;

                      if (
                      $zeit >= (356 24 60 60)) { // Zeit fuer ein Jahr
                          
                      $jahre floor($zeit / (356 24 60 60));
                          
                      $zeit -= $jahre * (356 24 60 60);
                      }

                      if (
                      $zeit >= (24 60 60)) { // Zeit fuer einen Tag
                          
                      $tage floor($zeit / (24 60 60));
                          
                      $zeit -= $tage * (24 60 60);
                      }

                      if (
                      $zeit >= (60 60)) { // Zeit fuer eine Stunde
                          
                      $stunden floor($zeit / (60 60));
                          
                      $zeit -= $stunden * (60 60);
                      }

                      if (
                      $zeit >= 60) { // Zeit fuer eine Minute
                          
                      $minuten floor($zeit 60);
                          
                      $zeit -= $minuten 60;
                      }

                      if (
                      $zeit 0) { // Noch Sekunden uebrig?
                          
                      $sekunden $zeit;
                      }

                      print(
                      "Jahre: $jahre | Tage: $tage | Stunden: $stunden | Minuten: $minuten | Sekunden: $sekunden<br>");
                      ?>
                      Will man nur bis 'Stunden' ausrechnen, kommentiert man einfach die if-Teile mit Jahre und Tage aus.

                      -> Getestet

                      Gruß,
                      Flo.

                      Kommentar

                      Lädt...
                      X