Ausrechnen von Minuten Sekunden... mit unixtime und timestamp

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

  • Ausrechnen von Minuten Sekunden... mit unixtime und timestamp

    Hallo,

    also mein Problem ist es das ich die unixtime minux timestamp rechnen will
    die ausgabe ist denn in sekunden. Und das möchte ich gerne in Minuten oder Stunden je nachdem ausgerechnet haben

    das ganze soll dann so ausgegeben werden

    y w d h m s

    natürlich soll nicht bei sekunden angaben steht 0y 0w 0d 0h u.s.w.
    sondern nur 5s z.b.

    habe mal so angefangen
    PHP-Code:
    $zeit time();
    $aktuell $zeit $timestamp;
    $pretime $aktuell 60;

    echo 
    "Dieser Eintrag ist $pretime Minuten alt."
    wie ihr seht sind das ziehmlich viele Zeilen um die Minuten rauszukriegen und manchmal bekomme ich sogar "5.33333333333" raus.
    Dabei möchte ich nur die volle Minuten ausgegeben haben.
    Hat jemand eine gute Idee wie ich sowas kürzer mit wenig Zeilen realisieren kann ?

    Zuletzt geändert von toffel; 11.02.2006, 16:58.

  • #2
    na wenns um die anzahl der zeilen geht dann machs so:
    PHP-Code:
    $pretime = (time() - $timestamp) / 60
    wenn du nur ganze zahlen anzeigen lassen willst hilft dir round weiter

    Kommentar


    • #3
      Folgendes berechnet die Zeitdifferenz mit einer Zeile und gibt erst ab dem ersten Nicht-Nullwert aus:
      PHP-Code:
      $diffs explode('|'date('y|w|d|h|m|s'$zeit-$timestamp));
      foreach (
      $diffs as $index => $value) {
          if (
      $value != 0) {
              
      $offset $index;
              break;
          }
      }
      for (
      $i $offset$i count($diffs); $i++) {
          echo 
      $diffs[$i];

      Ungetestet!

      Kommentar


      • #4
        Original geschrieben von onemorenerd
        Folgendes berechnet die Zeitdifferenz mit einer Zeile und gibt erst ab dem ersten Nicht-Nullwert aus:
        PHP-Code:
        $diffs explode('|'date('y|w|d|h|m|s'$zeit-$timestamp));
        foreach (
        $diffs as $index => $value) {
            if (
        $value != 0) {
                
        $offset $index;
                break;
            }
        }
        for (
        $i $offset$i count($diffs); $i++) {
            echo 
        $diffs[$i];

        Ungetestet!
        habe es so zum laufen bekommen

        PHP-Code:
        $diffs explode('|'date('y|w|d|h|m|s'$zeit-$timestamp));
        foreach (
        $diffs as $index => $value) {
            if (
        $value != 0) {
                
        $offset $index;
                break;
            }
        }
        for (
        $i $offset$i count($diffs); $i++;)
            echo 
        $diffs[$i]; 
        aber dann zeigt er mir garnicht an

        bei deinen script meine er bei dieser zeile ist ) unexpecting ...expecting ;

        PHP-Code:
        for ($i $offset$i count($diffs); $i++) { 
        Zuletzt geändert von toffel; 11.02.2006, 18:02.

        Kommentar


        • #5
          bei deinen script meine er bei dieser zeile ist ) unexpecting ...expecting ;

          PHP-Code:
          for ($i $offset$i count($diffs); $i++) { 
          glaub das sollte so aussehen


          PHP-Code:
          for ($i $offset$i count($diffs); $i++) { 

          Kommentar


          • #6
            richtig und wenn ich das richtig sehe müßte er durch $diffs alles ausgeben aber tut er nicht

            Kommentar


            • #7
              PHP-Code:
              $timediff $zeit $timestamp;
              $y intval($timediff 31536000);
              $remain $timediff 31536000;
              $m intval($remain 2628000);
              $remain $timediff 2628000;
              $d intval($remain 86400);
              $remain $timediff 86400;
              $h intval($remain 3600);
              $remain $remain 3600;
              $i intval($remain 60);
              $s $remain 60;

              echo 
              "$y Jahre, $m Monate, $d Tage, $h Stunden, $i Minuten, $s Sekunden"

              Kommentar


              • #8
                klasse danke und mit welchen befehlen kriege ich das hin das year erst angezeigt wird wenn es auch wirklich 1 jahr alt ist ?

                sieht ja blöd aus wenn da 0 Jahre, 0 Monate, 0 Tage u.s.w. steht

                Kommentar


                • #9
                  PHP-Code:
                  echo ($y "$y Jahre, " '')
                      .(
                  $m "$m Monate, " '')
                      .(
                  $d "$d Tage, " '')
                      .(
                  $h "$h Stunden, " '')
                      .(
                  $i "$i Minuten, " '')
                      .
                  $s Sekunden"; 

                  Kommentar


                  • #10
                    ich danke dir

                    aber


                    .[COLOR=red]"[/COLOR]$s Sekunden";




                    Kommentar


                    • #11
                      kann ich das auch irgendwie in eine Variable reinmachen sowas wie



                      $zeitangabe = ($y ? "$y Jahre, " : '')
                      .($m ? "$m Monate, " : '')
                      .($d ? "$d Tage, " : '')
                      .($h ? "$h Stunden, " : '')
                      .($i ? "$i Minuten, " : '')
                      .$s Sekunden";


                      ?

                      da ist später im text nur noch


                      bla bla ist $zeitangabe alt.

                      Kommentar


                      • #12
                        Natürlich kannst du. Alles was nach echo kommt, kannst du auch einer Variablen zuweisen. Allerdings hatte ich das eine " tatsächlich vergessen. Das solltest du schon einbauen, sonst klappts nicht.

                        PHP-Code:
                        $zeit = ($y "$y Jahre, " '')
                              .(
                        $m "$m Monate, " '')
                              .(
                        $d "$d Tage, " '')
                              .(
                        $h "$h Stunden, " '')
                              .(
                        $i "$i Minuten, " '')
                              .
                        "$s Sekunden";
                        echo 
                        "bla bla ist $zeit alt." 
                        Zuletzt geändert von onemorenerd; 12.02.2006, 00:42.

                        Kommentar


                        • #13
                          jo danke jetzt aber

                          Kommentar


                          • #14
                            hab nochmal eine frage dazu

                            PHP-Code:
                            $timediff $zeit $time;
                            $y intval($timediff 31536000);
                            $remain $timediff 31536000;
                            $m intval($remain 2628000);
                            $remain $timediff 2628000;
                            $d intval($remain 86400);
                            $remain $timediff 86400;
                            $h intval($remain 3600);
                            $remain $remain 3600;
                            $i intval($remain 60);
                            $s $remain 60;


                            $timeresult = ($y "$y<font color=\"#FF9900\">y</font>" '')
                                  .(
                            $m "$m<font color=\"#FF9900\">m</font>&nbsp;" '')
                                  .(
                            $d "$d<font color=\"#FF9900\">d</font>&nbsp;" '')
                                  .(
                            $h "$h<font color=\"#FF9900\">h</font>&nbsp;" '')
                                  .(
                            $i "$i<font color=\"#FF9900\">m</font>&nbsp;" '')
                                  .
                            "$s<font color=\"#FF9900\">s</font>"
                            so soll der code ja sein und ich habe jetzt 10 verschiedene $time werte
                            die in einer Variable liegen

                            $time1
                            $time2
                            ...
                            $time10

                            ich könnte ja jetzt die 17 zeilen 10 mal neu einfügen und immer "$time" ändern
                            aber ich glaube das würde mein script wieder langsamer machen und größer gibt es da noch eine andere möglichkeit ?
                            schön wäre es wenn ich das ganze denn auch in verschiedene Variablen bekommen könnte ...damit ich das später einfügen kann wo ich will also

                            $timeresult1
                            $timeresult2
                            ...
                            $timeresult10
                            z.b.

                            Kommentar


                            • #15
                              Stichwort "variable Variablen".

                              PHP-Code:
                              function calcDiff($zeit$time) {
                                  
                              $timediff $zeit $time;
                                  
                              $y intval($timediff 31536000);
                                  
                              $remain $timediff 31536000;
                                  
                              $m intval($remain 2628000);
                                  
                              $remain $timediff 2628000;
                                  
                              $d intval($remain 86400);
                                  
                              $remain $timediff 86400;
                                  
                              $h intval($remain 3600);
                                  
                              $remain $remain 3600;
                                  
                              $i intval($remain 60);
                                  
                              $s $remain 60;

                                  return (
                              $y "$y<font color=\"#FF9900\">y</font>" '')
                                    .(
                              $m "$m<font color=\"#FF9900\">m</font>&nbsp;" '')
                                    .(
                              $d "$d<font color=\"#FF9900\">d</font>&nbsp;" '')
                                    .(
                              $h "$h<font color=\"#FF9900\">h</font>&nbsp;" '')
                                    .(
                              $i "$i<font color=\"#FF9900\">m</font>&nbsp;" '')
                                    .
                              "$s<font color=\"#FF9900\">s</font>";
                              }

                              for (
                              $i 1$i <= 10$i++) {
                                  ${
                              timeresult$i} = calcDiff($zeit, ${time$i});

                              Kommentar

                              Lädt...
                              X