Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeitlichen Fortschritt ermitteln

Einklappen

Neue Werbung 2019

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

  • Zeitlichen Fortschritt ermitteln

    Hallo.
    Ich habe einen Artikel. Und der wird nach 14 Tagen ungueltig. Jetzt moechte ich wissen, wieviel Prozent ungueltigkeit der jetzt nun hat, wenn ihr versteht, was ich meine...

    Ich habe das hier ausprobiert, aber das geht nicht:
    Code:
    ((articles.write_date + INTERVAL 14 DAY - now())/(INTERVAL 14 DAY)) AS progress
    Der Fehler:
    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')) AS progress FROM articles
    GIbt es eine Moeglichkeit, per MySQL diesen prozentualen (*100 bekomme ich dann sicher alleine hin ) Fortschritt zu ermitteln? Bzw. wie mache ich das in PHP, denn irgendwie straeube ich mich dagegen, Zeiten zwischen PHP und MySQL hin und her zu werfen.

    Gruesse
    Maweki


    Edit:
    Hab MySQL 4.1

  • #2
    Du könntest dir mit der MYSQL_Funktion TO_DAYS() etwas basteln.
    etwa so:

    Code:
    SELECT
    ABS(TO_DAYS(articles.write_date + INTERVAL 14 DAY) - TO_DAYS(now()) / 14) AS progress
    ...
    Auszug aus der Docu:
    ----------------------------------------------------------------------------------------------
    TO_DAYS(date)
    Given a date date, returns a daynumber (the number of days since year 0).

    mysql> SELECT TO_DAYS(950501);
    -> 728779
    mysql> SELECT TO_DAYS('1997-10-07');
    -> 729669
    ----------------------------------------------------------------------------------------------
    ~dilemma~

    Kommentar


    • #3
      Das is ja schonmal ziemlich genau das, was ich suche, danke.

      geht das auch mit einem Fortschritt, der auch noch die Zeit einbezieht?

      also eine aehnliche Funktion wie TO_DAYS()?

      Kommentar


      • #4
        Korrektur:
        Da fehlte ein paar Klammern:
        Code:
        SELECT
        ABS(
              (   TO_DAYS(articles.write_date + INTERVAL 14 DAY)
                  -
                  TO_DAYS(now())
              )
              / 14
            ) AS progress
        ...
        ~dilemma~

        Kommentar


        • #5
          Du kannst auch auf Sekunden-Basis rechnen.

          Schau dir doch mal die Datums-und-Zeit-Funktionen
          in der MYSQL-Docu genauer an!

          ~dilemma~

          Kommentar


          • #6
            Danke an alle.
            Ich hab die Dauer auf 7 Tage begrenzt und mein Code schaut so aus:
            Code:
            (UNIX_TIMESTAMP(articles.write_date + INTERVAL 7 DAY) - UNIX_TIMESTAMP(now())) AS progress
            PHP-Code:
            $row[progress] = ($row[progress] / (60*60*24*7))*100
            Ich hab das Teilen dann im PHP gemacht, weil MySQL nur auf 2 Stellen nach dem Komma gerechnet hat. Also nur auf ganze Prozente...
            Und da mein Fortschrittsbalken mehr als 100 pixel hat...
            naja, ihr versteht schon...

            Danke

            Kommentar

            Lädt...
            X