Zeitformatierung von Sekunden in 00:00:00

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

  • #16
    Also ich habe es jetzt mal mit folgender Zeile probiert:

    <?php $stunden = (int)($data->usedpl / 3600);$sekunden -= $stunden * 3600;$sekunden -= $stunden * 3600;$minuten = (int)($sekunden / 60);$sekunden -= $minuten * 60;echo $stunden.':'.$minuten.':'.$sekunden;?>

    dabei kommt folgendes ergebnis raus:

    171:-20520:0

    irgendwo hab ich da noch nen Fehler

    Kommentar


    • #17
      Ggf weil du Stunden zweimal von $sekunden abziehst. Schau dir deine Zeile nochmals ganz genau an und vergleiche sie mit jener von happy. Siehst du den Unterschied ??
      PHP-Code:
      <?php 
      $stunden 
      = (int)($data->usedpl 3600);
      $sekunden -= $stunden 3600;
      $minuten = (int)($sekunden 60);
      $sekunden -= $minuten 60;
      echo 
      $stunden.':'.$minuten.':'.$sekunden;?>

      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


      • #18
        Jup war wieder in denkfehler von mir:

        Damit kam das richtige Ergebnis raus:

        <?php
        $stunden = (int)($data->usedpl/ 3600);
        $sekunden -= $stunden * 3600;
        $data->usedpl-= $stunden * 3600;
        $minuten = (int)($data->usedpl/ 60);
        $data->usedpl-= $minuten * 60;
        echo $stunden.':'.$minuten.':'.$data->usedpl;?>

        Ergebnis: 171:46:7

        Nun aber noch die Schönheitskosmetik:
        Wie bekomme ich es hin das aus der 7 bei Sekunden, eine 07 wird.
        Das gleich bei Minuten wenn da nur ne 5 stehen würde.

        Ist sehr wichtig, weger der Formatierung der Seite. Sonst sieht das sehr
        unschön aus wenn die Zeiten untereinander stehen.

        Gruß Thomas

        Kommentar


        • #19
          Büüüüüüüüüüüüüüüütttttttttte lies dazu das Manual zum Thema date()

          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


          • #20
            Moin,

            Du könntest einfach die fehlende 0 davor setzen...oder die date() Funktion mit den richtigen Parametern ausführen.
            Code:
            $time = getdate(time());
            						# Falls hours < 10, dann führende 0 erzeugen
            						if ($time['hours'] < 10)
            							{
            								$time['hours'] = "0".$time['hours'];
            							}
            						# Falls minutes < 10, dann führende 0 erzeugen
            						if ($time['minutes'] < 10)
            							{
            								$time['minutes'] = "0".$time['minutes'];
            							}
            Gruß Thomas
            Zuletzt geändert von Alrik; 17.01.2006, 10:53.

            Kommentar


            • #21
              Hab mir das Manual durchgelesen.
              Weis aber nicht wie es es an dieser Stelle umsetzen soll.
              Wie gesagt: Bin absoluter Anfänger!!!

              Kommentar


              • #22
                Also über die date() funktion will das nicht funktionieren.
                Bitte gebt mir noch einen Tip wie ich diese Funktion hier einbauen kann:

                <?php
                $stunden = (int)($data->usedpl/ 3600);
                $sekunden -= $stunden * 3600;
                $data->usedpl-= $stunden * 3600;
                $minuten = (int)($data->usedpl/ 60);
                $data->usedpl-= $minuten * 60;
                echo $stunden.':'.$minuten.':'.$data->usedpl;?>

                So das aus dieser Ausgabe:
                171:46:7

                diese wird
                171:46:07

                Gruß Thomas

                Kommentar


                • #23
                  Du musst einen Timestamp angeben, also deine Zeit in einen Timestamp umwandeln und am besten auch so in der DB speichern.
                  Diesen übergibst du an date() als zweiten Parameter. Der erste Parameter ist ein String, welcher die Ausgabe formatiert.

                  €: Und wenn du dir meinen Code angesehen hättest, dann hättest du gesehen wie du eine 0 nachträglich davor setzen kannst.

                  Kommentar


                  • #24
                    Original geschrieben von Alrik
                    Du musst einen Timestamp angeben, also deine Zeit in einen Timestamp umwandeln und am besten auch so in der DB speichern.
                    Diesen übergibst du an date() als zweiten Parameter. Der erste Parameter ist ein String, welcher die Ausgabe formatiert.

                    €: Und wenn du dir meinen Code angesehen hättest, dann hättest du gesehen wie du eine 0 nachträglich davor setzen kannst.

                    Den Wert in der Datenbank kann ich leider nicht ändern. Der ist mir so vorgegeben. Dein Code funktioniert sicherlich. Nur leider habe ich noch ca. 50 andere Zeitangaben in Sekunden. Wenn man dies immer davor baut sieht glaube dann schnell keiner mehr durch.

                    Laut der Date Funktion kann man nur Stunden im 0-24 Stunden Format angeben. Was mach ich dann mit den beschriebenen 171 Stunden?

                    Gruß Thomas

                    Kommentar


                    • #25
                      Date ist auch dafür gedacht, Daten anzugeben und die gehen nunmal nicht über die 24 Std hinaus.
                      Die Funktion mktime() macht dir aus einem gegebenen Datum einen Timestamp.

                      Um nochmal auf die führenden Nullen zurückzukommen. Das sind Grundlagen:
                      PHP-Code:
                      if ($sekunden <= 9)
                      {
                      $sekunden "0".$sekunden;

                      War doch garnicht so schwer?!

                      Kommentar


                      • #26
                        Meine 5 cents zum letzten:
                        PHP-Code:
                        $temp date('j:h:i:s',$data->usedpl);
                        $tempi explode(':',$temp);
                        $tempi[1] += ($tempi[0] -1) * 24;
                        echo 
                        $tempi[1].':'.$tempi[2].':'.$tempi[3]; 
                        Jetzt sollten die Anzahl Tage in Stunden korrekt zur Stundenangabe hinzuaddiert worden sein. Das echo sollte der String sein, wie du ihn wolltest.

                        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


                        • #27
                          Hi Tobi

                          Die Ausgabe deines Scriptes sieht so aus:

                          1:00:00

                          Es wird also nicht die richtige Zeit angezeigt.

                          Ich hab jetzt versucht dies so zu lösen und folgende Funktion geschrieben
                          nach Vorgabe von Alrik


                          PHP-Code:
                          function TimeToFormat($tmp){

                             
                          $stunden = (int)($tmp 3600);
                             
                          $sekunden -= $stunden 3600;
                             
                          $tmp -= $stunden 3600;
                             
                          $minuten = (int)($tmp 60);
                             $
                          $tmp -= $minuten 60;

                             if (
                          $minuten <= 9)
                                {
                                   
                          $minuten "0".$minuten;
                                }

                             if (
                          $tmp <= 9)
                                {
                                   
                          $data->$tmp "0".$data->$tmp;
                                }

                          echo  
                          $stunden.':'.$minuten.':'.$tmp;

                          return 
                          null;


                          Jetzt wollte ich diese so ins html einbinden:

                          also erstma include der function dann

                          PHP-Code:
                          <?php echo TimeToFromat($data->usedpl);?>
                          Leider ist hier die Ausgabe auch 0:00:00.

                          Bin mal wieder etwas Ratlos

                          Lieben Gruß Thomas

                          Kommentar


                          • #28
                            Bist du sicher, dass deine Zeitstempel korrekt sind ? Wenn du ein var_dump($tempi) machst: Wat kommt denn raus ?

                            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


                            • #29
                              Die Daten in der Datenbank sind korrekt. Hier steht im Prinzip die Anzahl der Sekunden z.B 600000

                              Ob das jetzt ein richtiger Zeitstempel ist so wie dein Script das braucht entzieht sich meiner Kenntnis.

                              Gruß Thomas

                              Kommentar


                              • #30
                                Original geschrieben von jahlives
                                Wenn du ein var_dump($tempi) machst: Wat kommt denn raus ?
                                Wie binde ich das ein, dann sage ich dir gern was dann raus kommt.

                                Kommentar

                                Lädt...
                                X