Michi: Vergleiche gespeichertem timestamp mit aktueller Zeit?

Hallo,

für eine IP-Sperre speichere ich den timestamp in die Datenbank. Dann lese ich ihn aus und möchte ihn mit der aktuellen Zeit vergleichen und feststellen, wieviele Stunden dazwischen liegen. Ist die Zeit grösser als 24 Stunden wird $allowed auf 1 gesetzt, ansonsten auf 0.

Mein Problem: Wie kann ich die beiden Timestamps (gespeicherten und den aktuellen) miteinander auf die Stunden vergleichen? Ich kriegs nicht hin...

Grüße
Michi

  1. Mein Problem: Wie kann ich die beiden Timestamps (gespeicherten und den aktuellen) miteinander auf die Stunden vergleichen? Ich kriegs nicht hin...

    Grüße
    Michi

    :-)
    $time1 = timestamp 1;
    $time2 = timestamp 2;
    $time = $time2 - $time1;

    $zeitfenster = 60 * 60 * 24;

    if ($time >= $zeitfenster) {
         Anweisungen ...
    }

    have phun.

    1. Hallo

      $time1 = timestamp 1;
      $time2 = timestamp 2;
      $time = $time2 - $time1;

      $zeitfenster = 60 * 60 * 24;

      if ($time >= $zeitfenster) {
           Anweisungen ...
      }

      Kann mir mal jemand sagen, warum die 86400 Sekunden
      bei jedem Skriptaufruf neu errechnet werden sollen?
      Die zwei Multiplikationen werden den Interpreter mit
      Sicherheit nicht auslasten, aber ich denke, bei
      ähnlichen, aber mit komplizierteren Berechnungen
      verbundenen, Fällen, kann sowas Rechenzeit kosten.

      if ($time >= 86400)
         {
         }

      oder $zeitfenster = 86400; und weiter wie ganz oben.

      Tschö, Auge

      1. if ($time >= 86400)
           {
           }

        oder $zeitfenster = 86400; und weiter wie ganz oben.

        Naja, bei der genannten Lösung kann man noch nachvollziehen, woher die Zahl kam... das ist wohl der einzige Grund.

        Grüße
        Lars

        1. hi,

          Naja, bei der genannten Lösung kann man noch nachvollziehen, woher die Zahl kam... das ist wohl der einzige Grund.

          für die nachvollziehbarkeit kannst du ja gerne einen zusätzlichen kommentar einfügen, der die herkunft der zahl 86400 erklärt ;-)

          gruss,
          wahsaga

      2. Hallo

        $time1 = timestamp 1;
        $time2 = timestamp 2;
        $time = $time2 - $time1;

        $zeitfenster = 60 * 60 * 24;

        if ($time >= $zeitfenster) {
             Anweisungen ...
        }

        Kann mir mal jemand sagen, warum die 86400 Sekunden
        bei jedem Skriptaufruf neu errechnet werden sollen?
        Die zwei Multiplikationen werden den Interpreter mit
        Sicherheit nicht auslasten, aber ich denke, bei
        ähnlichen, aber mit komplizierteren Berechnungen
        verbundenen, Fällen, kann sowas Rechenzeit kosten.

        if ($time >= 86400)
           {
           }

        oder $zeitfenster = 86400; und weiter wie ganz oben.

        Tschö, Auge

        High :-)
        Als erstes kostet da nix Rechenzeit und als zweites ist das Programmierstil.

        Programmierstil zu Lasten des Prozessors ist ok. du machst ja auch Unmengen von Tabs, Leerzeichen und vielleicht sogar Kommentare in Deinen Code.

        Gruß Lars.

        1. Hi Lars,

          High :-)
          Als erstes kostet da nix Rechenzeit und als zweites ist das Programmierstil.

          Programmierstil zu Lasten des Prozessors ist ok. du machst ja auch Unmengen von Tabs, Leerzeichen und vielleicht sogar Kommentare in Deinen Code.

          Sorry, aber was soll der Müll? Auge hat dich auf etwas aufmerksam gemacht, und deine Antwort ist dermaßen überheblich und dazu unqualifiziert. Lass es bitte.

          Grüße aus Barsinghausen,
          Fabian

          1. Bist Du hier der Polizist oder was?

            Als erstes wollte ich nicht überheblich klingen und habe das nicht böse gemeint. es ist eben so.

            Als Zweites bitte ich Dich, Dich beim nächsten mal Themaorientiert zu verhalten. deine Meinung über mich interessiert hier niemanden.

            Gruß

            1. Hi Lars,

              Bist Du hier der Polizist oder was?

              U.U kann dir das so vorkommen.

              Als erstes wollte ich nicht überheblich klingen und habe das nicht böse gemeint. es ist eben so.

              Nein, es ist eben nicht so. Auge hat völlig Recht, und dein Reaktion stinkt mir. Insbesondere, da deine Andeutung von wegen Kommentaren noch größerer Blödsinn ist.

              Als Zweites bitte ich Dich, Dich beim nächsten mal Themaorientiert zu verhalten. deine Meinung über mich interessiert hier niemanden.

              Es ist völlig egal, ob es jemanden interessiert oder nicht. Du musst meine Postings nicht lesen, wenn sie dir nicht passen.

              Grüße aus Barsinghausen,
              Fabian

        2. Hallo

          Als erstes kostet da nix Rechenzeit und als zweites ist das Programmierstil.

          1. kostet das doch Rechenzeit (in dem Beispiel sehr wenig,
             könnte aber auch mehr sein)
          2. ist es guter[tm] Programmierstil so etwas entweder fest,
             oder als fertige Variable festzulegen, könnte ja öfter gebraucht werden.

          Programmierstil zu Lasten des Prozessors ist ok. du machst ja auch Unmengen von Tabs, Leerzeichen und vielleicht sogar Kommentare in Deinen Code.

          Tabs und Leerzeichen dienen der Lesbarkeit des Codes,
          speziell während der Entwicklung. Kommentare werden nicht geparst,
          kosten also auch keine Rechenzeit.

          Gruß Lars.

          Tschö, Auge

          1. Hallo

            Als erstes kostet da nix Rechenzeit und als zweites ist das Programmierstil.

            1. kostet das doch Rechenzeit (in dem Beispiel sehr wenig,
                 könnte aber auch mehr sein)

            Also gut. Du hast natürlich recht.

            1. ist es guter[tm] Programmierstil so etwas entweder fest,
                 oder als fertige Variable festzulegen, könnte ja öfter gebraucht werden.

            Genau... Als Variable festlegen hört sich gut an. Es handelt sich ja nicht um eine Konstante sondern um ZEIT. Was das Update eines Skripts sehr verkomplizieren kann.

            Programmierstil zu Lasten des Prozessors ist ok. du machst ja auch Unmengen von Tabs, Leerzeichen und vielleicht sogar Kommentare in Deinen Code.

            Tabs und Leerzeichen dienen der Lesbarkeit des Codes,
            speziell während der Entwicklung. Kommentare werden nicht geparst,
            kosten also auch keine Rechenzeit.

            Genau. Sie dienen der Lesbarkeit, der Übersicht oder sogar der Information welcher Codeabschnitt was leistet.

            Ich könnte mir jedoch vorstellen, dass JEDES Bit eines Dokuments Rechenleistung verbraucht, was uns wieder dazu bringt, dass es zwar nicht KEINE Rechenleistung ist, jedoch es sich um SEHR wenig Rechenleistung dreht.

            Also wie weit bringt uns die Goldwiegerei? Wenn es sich darum dreht, eine Multiplikation mehr oder weniger pro Skript - oder sagen wir mal 10 Multiplikationen pro Skript- auszuführen, muss der Traffic ganz schön hoch sein, um den Prozessor auszulasten.

            Eine unnötige Verkomplizierung des Skripts durch schlechte MySQL-Queries oder 1000 unnötigen requires sollte man aber eher unterlassen. Nebenbei gesagt ist das Dateisystem von Linux verdammt schnell, da muss man sich nicht mal um require() Sorgen machen.

            Wenn Du Deine 86400 Sekunden nutzen magst, bemängelt das sicher kein Mensch, solange Du eine Variable dazu benutzt. Aber meinst du, es lastet Deinen Rechner zu sehr aus, wenn man 60*60*24 nimmt? Ich glaube nicht.

            Schöne Grüße Lars.