Ankündigung

Einklappen
Keine Ankündigung bisher.

Vergangene Zeit anzeigen

Einklappen

Neue Werbung 2019

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

  • Vergangene Zeit anzeigen

    Mahlzeit an alle Forumnutzer,
    ich bin recht neu auf dem php Gebiet und komme dafür relativ gut klar, jedoch habe ich momentan ein Problem mit dem darstellen einer abgelaufenen Zeit.

    Ich möchte für meine Homepage eine Anzeige bauen in der jeder ablesen kann wie lange die User nicht mehr online waren.

    Dazu brauche ich die aktuelle Zeit und die Zeit des letzten Logins.

    Ich hab nun für beide Zeiten den UNIX-Timestamp erzeugt und ziehe nun die "letzte Login Zeit" von der "aktuellen Zeit" ab und erhalte somit die Differenz.
    Diese Differenz stellt doch nun die abgelaufenen Sekunden seit dem letzten Login dar.

    Nun will ich diesen Timestamp als abgelaufene Stunden und Minuten darstellen! Es wird mir eine zeit angezeigt, aber die ist immer +eine Stunde. Ich hab nun meine Möglichkeiten ausgeschöpft und komme einfach nicht weiter. Hier ist mein Quellcode und ich hoffe das mir jemand helfen kann. Viele Grüße zwantE aus Hamburg
    PHP-Code:
    $timestamp time(); 
    $time_now date("d.m.Y - H:i",$timestamp); 
    $timestamp_lastlogin $ds['time'];
    $diffzeit $timestamp $timestamp_lastlogin;
    $last_active date("G:i",$diffzeit); 


  • #2
    Wenn du die Differenz in Sekunden hast ist das kein Timestamp mehr und du kannst nicht mehr date() nutzen. Schreib dir lieber ne einfache Funktion:

    PHP-Code:
    function blub($differenz) {
      
    $sekunden $differenz 60;
      if (
    $differenz >= 60) {
        
    $differenz floor($differenz/60);
      }
      
    $minuten $differenz 60;
      if (
    $differenz >= 60) {
        
    $differenz floor($differenz/60);
      }
      
    $stunden $differenz;

      return 
    "$stunden Stunden, $minuten Minuten, $sekunden Sekunden";

    Kommentar


    • #3
      date() bezieht sich auf eine Referenzzeit (Unix-Epoche, hast Du sicher mal gehört) und ist deswegen für Zeitdifferenzen eher weniger geeignet. Die Unix-Epoche beginnt um 0:00 UTC, daher gibts hier schon mal eine Abweichung zur MEZ. Bei langen Perioden erntest Du auch noch die Abweichungen der Schaltjahre und Sommerzeiten der jeweiligen Jahre (1970 + Zeitdifferenz).
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Danke für eure Antworten, aber wenn ich dieses Code nutze wird meine Seite nicht mehr angezeigt
        PHP-Code:
        function blub($differenz) {
          
        $sekunden $differenz 60;
          if (
        $differenz >= 60) {
            
        $differenz floor($differenz/60);
          }
          
        $minuten $differenz 60;
          if (
        $differenz >= 60) {
            
        $differenz floor($differenz/60);
          }
          
        $stunden $differenz;

          return 
        "$stunden Stunden, $minuten Minuten, $sekunden Sekunden";

        des Weiteren irritiert mich der Funktionsname "blub" den kann ich doch frei vergeben oder irre ich mich da? Und korrigiert mich bitte falls ich hiermit auch falsch liege, aber meine ausgerechnete Zeit gebe ich dann mit mittels
        PHP-Code:
        echo '$stunden Stunden, $minuten Minuten, $sekunden Sekunden'
        aus ?!

        Kommentar


        • #5
          Den Code hab ich ja nur mal kurz zamgeschrieben (und nicht getestet).

          Die Funktion kannst du benennen wie du willst, und wie du siehst ist der Rückgabewert ein String, du kannst also einfach "echo blub(400);" oder sowas machen, du musst dir die Funktion halt anpassen wie du sie brauchst.

          Vlt. sollte die Funktion besser so aussehen:
          PHP-Code:
          function blub($differenz) {
            
          $minuten $stunden 0;
            
          $sekunden $differenz 60;
            if (
          $differenz >= 60) {
              
          $differenz floor($differenz/60);
              
          $minuten $differenz 60;
              if (
          $differenz >= 60) {
                
          $differenz floor($differenz/60);
                
          $stunden $differenz;
              }    
            }

            return 
          "$stunden Stunden, $minuten Minuten, $sekunden Sekunden";

          Kommentar


          • #6
            Es ist bei dieses Code genau das gleiche, sobald ich ihn einfüge wird die Seite nicht mehr dargestellt.
            Quasi als wenn ein ; oder sowas fehlt. der Seitenaufbau wird quasi abgebrochen.

            Von solchen Funktionen hab ich leider keine Ahnung und weiß auch ehrlich gesagt nicht was du mit "echo blub(400);" meinst. Wäre in diesen Beispiel 400 der Wert der dann in Stunden Minuten und Sekunden umgerechnet wird?

            MfG und danke für deine Geduld

            Kommentar


            • #7
              Mh also wenn du die Funktion nicht verstehst, dann solltest du dir vlt. nochmal die Grundlagen in PHP anschauen, weil wenn du nicht mal weißt wie man ne Funktion schreibt und wie man die Grundrechenarten anwendet dann brauchst du in PHP nicht weiter machen.

              Kommentar


              • #8
                "learning by doing" würd ich das nennen und bisher schaffe ich mir das ja zurecht zu puzzeln, aber hierbei hört es dann leider auf.
                Deshalb hab ich ja den Weg in ein Forum gesucht in der Hoffnung das mir das jemand anhand des Beispiels erkläre bzw zeigen kann, damit ich das für die Zukunft auch selber hinkriege.

                Kommentar


                • #9
                  Dann ist hier wohl der Punkt gekommen an dem du mal strukturiert vorgehen musst und die Basics lernen musst. Wir haben genug Tutorials dafür zusammen geschrieben:

                  Hinweis:
                  [!] Bitte lies dir diesen Thread zu den Grundlagen von PHP durch. Die Grundlagen sind essentiell für das Arbeiten mit PHP, MySQL, HTML, JavaScript oder CSS!

                  Kommentar

                  Lädt...
                  X