Zeit umwandler

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

  • Zeit umwandler

    Hallo php-resource.de Benutzer,

    Ich hab aus einer MYSQL abfrage eine Sekunden Ausgabe.
    Sagen wir mal 3024000 Sekunden also 5 Wochen. Nun will eine
    PHP aushabe der Automatisch erkennt das es 5 Wochen sind.
    Was ist nun bis jetzt geschrieben habe sieht wie folgt aus:
    PHP-Code:
    <?php
      $n
    MYSQLABFRAGE;
      if(
    $n 2592000// Monate
      
    {
      
    $dauer floor($n/2592000)." Monate";
      echo 
    $dauer;
      }
      else if(
    $n 604800// Wochen
      
    {
      
    $dauer floor($n/604800)." Wochen";
      echo 
    $dauer;
      }
      else if(
    $n 86400// Tage
      
    {
      
    $dauer floor($n/86400)." Tage";
      echo 
    $dauer;
      }
      else if(
    $n 3600// Stunden
      
    {
      
    $dauer floor($n/60)." Stunden";
      echo 
    $dauer;
      }
      else if(
    $n 60// Minuten
      
    {
      
    $dauer floor($n&60)." Minuten";
      echo 
    $dauer;
      }
      else if(
    $n 1// Sekunden
      
    {
      echo 
    $n;
      echo 
    "Sekunden";
      }
      else if(
    $n == 0// Perma
      
    {
      echo 
    "Perma";
      }
    ?>
    Dies funktioniert nicht so wie gewollt. Er gibt bei 3024000 Sekunden 1 Monat aus, bzw 1,14992189 Monate. Zeit angaben mit Kommastellen möchte ich nicht.

    Ich bitte um eure Hilfe.

    Mit freundlichen Grüßen,

    Julian

  • #2
    Wie lang ist denn bei dir ein Monat?

    Kommentar


    • #3
      30 Tage

      Kommentar


      • #4
        Das wird so nicht funktionieren. Nicht jeder Tag hat 24 Stunden. Nicht jeder Monat hat 30 Tage.

        Warum lässt du das nicht gleich die Datenbank berechnen, anstatt selber umständlich mit Sekunden zu rechnen?

        Kommentar


        • #5
          Verzichte mal auf Monatsangaben. Dann müsste es funktionieren.
          Siehe:
          Häufig benötigte Codeschnipsel - Wie wandle ich Sekunden in Tage/Stunden/Minuten/Sekunden um?

          Kommentar


          • #6
            Zitat von h3ll Beitrag anzeigen
            Nicht jeder Monat hat 30 Tage.
            30*12 = 360. Diese 5 bzw 6 Tage sind bei meiner Sache egal.

            Zitat von h3ll Beitrag anzeigen
            Nicht jeder Tag hat 24 Stunden.
            Das ist mir neu.

            Zitat von h3ll Beitrag anzeigen
            Warum lässt du das nicht gleich die Datenbank berechnen, anstatt selber umständlich mit Sekunden zu rechnen?
            Würde ich gerne, geht ab nicht.

            Edit:

            Zitat von alxy Beitrag anzeigen
            Verzichte mal auf Monatsangaben. Dann müsste es funktionieren.
            Siehe:
            Häufig benötigte Codeschnipsel - Wie wandle ich Sekunden in Tage/Stunden/Minuten/Sekunden um?
            Würde ich gerne. Möchte aber nicht das es zb. 1 Tag 5 Stunden 3 Minuten 27 Sekunden angibt.

            Wenn das eine gerade Woche/Tag/Monat ist das es dann in der Höhst möglichen Zeit Form ausgibt. d.h bei 907200 Sekunden (= 1 1/2 Wochen) angibt 252 Stunden.

            Was ich bereits gefunden habe ist das hier.
            PHP-Code:
            function SecondsToString($sec$textual=true)
            {
            ****if(
            $textual)
            ****{
            ********
            $div = array( 259200060480086400360060);
            ********
            $desc = array('mo','wk','d','hr','min','sec');
            ********
            $ret null;
            ********foreach(
            $div as $index => $value)
            ********{
            ************
            $quotent floor($sec $value); //greatest whole integer
            ************if($quotent 0) {
            ****************
            $ret .= "$quotent {$desc[$index]}, ";
            ****************
            $sec %= $value;
            ************}
            ********}
            ********return 
            substr($ret,0,-2);
            ****}
            ****else
            ****{
            ********
            $hours floor ($sec 3600);
            ********
            $sec -= $hours 3600;
            ********
            $mins floor ($sec 60);
            ********
            $secs $sec 60;
            ********return 
            "$hours:$mins:$secs";
            ****}

            Diese Funktion verstehe ich aber nicht.
            Zuletzt geändert von spikesDESIGN; 10.04.2012, 21:11.

            Kommentar


            • #7
              Zitat von spikesDESIGN Beitrag anzeigen
              Würde ich gerne, geht ab nicht.
              Doch, das geht. Du kannst es nicht, triffts vielleicht eher. Aber das kann man ändern.

              Kommentar


              • #8
                Es ist eine AMX(Pawn code) datei die es in der MYSQL datei speichert und wieder abfragt dies in Sekunden und ich habe nicht den Grund Code dafür..

                Kommentar


                • #9
                  Zitat von spikesDESIGN Beitrag anzeigen
                  30*12 = 360. Diese 5 bzw 6 Tage sind bei meiner Sache egal.
                  Oh, du bist Banker? Das erklärt natürlich einiges ...

                  Das ist mir neu.
                  Mal abgesehen von der Erbsenzählerei mit den Schaltsekunden, hast du noch nie etwas von Sommerzeit gehört?

                  ...
                  Was ich bereits gefunden habe ist das hier.
                  PHP-Code:
                  function SecondsToString($sec$textual=true)
                  {
                  // ...
                  }

                  Diese Funktion verstehe ich aber nicht.[/QUOTE]

                  Es ist nicht sinnvoll, per Copy-N-Paste irgendwas einzubauen, von dessen Grundlage man allenfalls ausbaufähige Kenntnisse hat. Besser du verlässt dich auf die entsprechenden Funktionen der Standardlibrary.
                  Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                  Kommentar

                  Lädt...
                  X