online seit..

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

  • online seit..

    Hi,

    also ich habe ein Seite mit dem Profil, wenn man eingeloggt ist erscheint da eben dies und die Zeit wie lange man schon on ist.
    Das Problem ist, das die Minuten stimmen, allerdings die Stunden nicht.. es zeigt immer 1 Stunde an auch wenn man nur 5 Minuten eingeloggt ist :/

    PHP-Code:
      <tr> 
        <td class="tab"> 
          <? if(online($user['UserID'])) echo "Eingeloggt seit:"; else echo "Zuletzt online am:"; ?>
        </td>
        <td class="tab2"><strong> 
          <? if(online($user['UserID']))  { 
        $login = time("U") - $user['UserLoginTime']; 
    echo date("H:i:s", $user['UserLoginTime'])." ( ".date("G", $login)." Stunde(n) und ".date("i", $login)." Minuten)"; 
        } else {
        echo date("d", $user['UserLastLogin']).". ".monat()." ".date("Y - H:i", $user['UserLastLogin']); } ?>
          </strong></td>
      </tr>
    Das ist der wichtige Part:

    PHP-Code:
    $login time("U") - $user['UserLoginTime']; 
    echo 
    date("H:i:s"$user['UserLoginTime'])." ( ".date("G"$login)." Stunde(n) und ".date("i"$login)." Minuten)"
    So, ich versuche halt die jetztige Zeit abzuziehen von der Loginzeit.. damit hätte ich ja die Differenz, d.h. die Zeit wie lange man schon online ist.. wie gesagt, mit Minuten funzt das, mit den Stunden nicht.

    Evtl. könnte mir jmd. helfen?

    mfg..
    Zuletzt geändert von roNn; 15.02.2004, 15:46.

  • #2
    ich versuche halt die jetztige Zeit abzuziehen von der Loginzeit..
    müsste das nicht andersrum?

    Kommentar


    • #3
      Wenn ich es andersrum mache kommt das:

      Code:
      Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in ***\profile.php on line 58
      
      Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in ***\profile.php on line 58
      Hier nochmal Zeile 58:

      PHP-Code:
      $login $user['UserLoginTime'] - time("U"); 
      echo 
      date("H:i:s"$user['UserLoginTime'])." ( ".date("G"$login)." Stunde(n) und ".date("i"$login)." Minuten)"
      Zuletzt geändert von roNn; 15.02.2004, 15:59.

      Kommentar


      • #4
        ok, dann muss ich deinen code erstmal nachvollziehen:

        PHP-Code:
        $login time("U") - $user['UserLoginTime']; 
        echo 
        date("H:i:s"$user['UserLoginTime'])." ( ".date("G"$login)." Stunde(n) und ".date("i"$login)." Minuten)"
        warum übergibst du time() einen wert?
        $user['UserLoginTime'] enthält einen Unix-Timestamp?

        Kommentar


        • #5
          U = Zeit seit Beginn der Unix-Zeitzählung ... mhh stimmt macht keinen Sinn.. ist weg
          Dann `UserLoginTime` beeinhaltet einen UnixTimestamp.. so ist es ..

          Kommentar


          • #6
            time() ist meines erachtens größer als der letze login, oder? Sollte zumindest so sein.

            also time() - lastlogin = onlinezeit

            echo date('xstunden, yminuten',onlinezeit);

            sollte dann auch klappen.

            BTW: Warum schreibst du eigentlich nicht das was du machst, sondern das gegenteil. willst du mich absichtlich in die irre führen?

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              BTW: Warum schreibst du eigentlich nicht das was du machst, sondern das gegenteil. willst du mich absichtlich in die irre führen?
              Versteh nicht was du meinst, aber ich will dich sicherlich nicht verarschen falls du das meinst.. O_o

              So wie dum meintest habe ich es jetzt:

              PHP-Code:
              $login time() - $user['UserLoginTime']; 
              echo 
              date("H:i:s"$user['UserLoginTime'])." ( ".date("H"$login)." Stunde(n) und ".date("i"$login)." Minuten)"
              Leider ist da trotzdem noch irgendwie eine Stunde zu viel .. ich versteh das einfach nicht..

              Kommentar


              • #8
                lass mal aller werte ausgeben: loginzeit, time() und die differenz

                OffTopic:
                Du hast eben geschrieben:
                ich versuche halt die jetztige Zeit abzuziehen von der Loginzeit..
                hast aber folgenden code:
                PHP-Code:
                $login time("U") - $user['UserLoginTime']; 

                Kommentar


                • #9
                  986 $login
                  1076874221 time()
                  1076873235 $user['UserLoginTime']

                  Hier sind die Werte..

                  Und nochmal der aktuelle Code:

                  PHP-Code:
                           if(online($user['UserID']))  {
                      
                  $login time() - $user['UserLoginTime']; 
                      echo 
                  $login." \$login<br>";
                      echo 
                  time()." time()<br>";
                      echo 
                  $user['UserLoginTime']." \$user['UserLoginTime']<br>";
                      echo 
                  date("H:i:s"$user['UserLoginTime'])." ( ".date("H"$login)." Stunde(n) und ".date("i"$login)." Minuten)"
                      } else {
                      echo 
                  date("d"$user['UserLastLogin']).". ".monat()." ".date("Y - H:i"$user['UserLastLogin']); } 

                  Kommentar


                  • #10
                    blick deinen code net so ganz. kann aber auch daran liegen, dass du date() so oft aufrufst, ohne dass es da nen ordentlichen Grund für gibt.

                    Kommentar


                    • #11
                      PHP-Code:
                      $login time() - $user['UserLoginTime']; 
                      echo 
                      date("H:i:s"$user['UserLoginTime'])." ( ".date("H"$login)." Stunde(n) und ".date("i"$login)." Minuten)"
                      So das ist der wichtige Teil..

                      PHP-Code:
                      $login time() - $user['UserLoginTime']; 
                      In die Var $login wird die Differenz zwischen der aktuellen Zeit und der Loginzeit geschrieben.

                      PHP-Code:
                      echo date("H:i:s"$user['UserLoginTime'])." ( ".date("H"$login)." Stunde(n) und ".date("i"$login)." Minuten)"
                      Mit dem 1. date hole ich die Loginzeit raus und gebe sie aus, beim 2. date die Stunde der Differenz und bei 3. date die Minuten der Differenz.

                      -> 21:26:38 ( 01 Stunde(n) und 00 Minuten)

                      Bei den Minuten klappt das auch ganz wunderbar, allerdings zeigt es mir immer 1 Stunde zuviel an..

                      An was liegt es? Ich komme einfach nicht drauf.. :/

                      mfg

                      Kommentar


                      • #12
                        Weiß es denn niemand? :/

                        Kommentar


                        • #13
                          hab ja gesagt, dass du das date mal sparsamer einsetzen soll, ich hab keine lust mich durch den wirrcode durchzuarbeiten.

                          Kommentar


                          • #14
                            weil
                            PHP-Code:
                            echo date("H"0); 
                            01 ergibt.

                            Hat vielleicht was mit der Zeitverschiebung zu Greenwich zu tun? Vielleicht
                            -3600 machen.

                            Offe

                            Kommentar


                            • #15
                              Original geschrieben von TobiaZ
                              hab ja gesagt, dass du das date mal sparsamer einsetzen soll, ich hab keine lust mich durch den wirrcode durchzuarbeiten.
                              Hab ich doch alles erklärt..

                              Original geschrieben von Offe1
                              weil
                              PHP-Code:
                              echo date("H"0); 
                              01 ergibt.

                              Hat vielleicht was mit der Zeitverschiebung zu Greenwich zu tun? Vielleicht
                              -3600 machen.

                              Offe
                              Mhh aber sonst ist doch auch alles korrekt.. aber na gut.. das könnte schon sein, da ich ja abziehe.. mhh k ich probiers mal, danke

                              Kommentar

                              Lädt...
                              X