Timestamp abrufen und auswerten

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

  • Timestamp abrufen und auswerten

    Ich grüße euch,

    ich habe vorgestern mit PHP-MySql angefangen und habe mich durch das schattenbaum und zum Teil durch das quakenet Tutorial durchgearbeitet - super Sache! - und "programmiere mich gerade aus". Bitte habt deshalb Verständnis dafür, dass ich mich noch nicht so richtig auskenne und bei den Ein oder Anderen Fachbegriffen sicher meine Probleme haben werde - aber nun zu meinem Anliegen.

    Nun mache ich gerade ein Newsscript, was an für sich bisher auch ganz gut funktioniert, nur bin ich jetzt - auf ein für mich - unlösbares Problem gestoßen.

    Beim Eintragen der News wird im Hintergrund der timestamp ermittelt und in der Datenbank gespeichert (zuerst habe ich den Tag/Monat/Jahr/Uhrzeit in einzelne, seperate Spalten eingetragen). Ich möchte die News nun formatiert ausgeben (also in einer schönen Tabelle etc.) was auch Klasse funktioniert ABER:


    Ich kann den Timestamp mit folgenden Befehl ausgeben:

    <?php
    $abfrage = "SELECT timestamp FROM testbank";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
    echo $row->timestamp;
    }

    ?>

    Nun möchte ich aber ein vernünftiges Datum anzeigen lassen, denn mit dem Timestamp können ja die wenigsten etwas anfangen, also formatier und unterscheide in $datum und $uhrzeit mit folgendem Befehl:

    $datum = date("d.m.Y",$timestamp);
    $uhrzeit = date("H:i",$timestamp);


    Ich benutze dafür einen ermittelten timestamp-Wert, den ich noch nicht habe und auch nicht bekomme - DAS ist mein Problem. Ich dachten an folgenden Lösungsweg, der jedoch auch nicht funktionierte:

    $timestamp = $row->timestamp;

    Ich möchte also beim EINTRAGEN der News die zeit unsichtbar als Timestamp in der MySql Datenbank speichern (das klappt ohne Probleme).
    Ich möchte dann beim AUSGEBEN der eingetragenen Daten schön anzeigen und den Timestampwert in ein ansehnliches Format umwandeln.



    So...
    Erstmal hoffe ich, dass ich mich klar ausgedrückt habe und ihr wisst was mein Problem ist. Über Hilfe würde ich mich sehr freuen - und bitte habt nachsehen, auch wenn sich die Frage für euch etwas blöde anhört


    Machts gut,
    Qorum

  • #2
    Verwende doch die Time Date Feld Typen von MySql. Mit den entsprechenden MySql Fkt kannst du den Timestamp beim Eintragen feststellen lassen.
    MySql speichert das Datum in der Form von 2007-05-15, welches du mittels eines
    PHP-Code:
    echo data('d.m.Y.',strtotime($timestamp_aus_db)); 
    in die gewünschte Form bringen kannst.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      versteh nicht ganz was du meinst!
      Willst Du den aktuellen timestamp des eintrags ermitteln? wenn ja -> "time();"

      Aber wenn du ihn hast, wie willst du ihn dann schöner ausgeben als wie mit date();

      Ich selber speichere Zeitangaben immer als Timestamp (Int) ab, weil ich mit den Werten besser rechnen kann, ohne andere Funktionen nutzen zu müssen!

      Kommentar


      • #4
        Wenn es in der db ein MySQL-Timestamp sein soll, dann kannst du ihn mit SELECT UNIX_TIMESTAMP(timestamp) AS timestamp FROM testbank
        auslesen.

        Beim Eintragen kannst du einfach NOW() machen für den aktuellen Zeitpunkt, oder wenn du unixtimestamps hast und die abspeichern willst, dann mit FROM_UNIXTIME(" . $timestamp . ").

        Mysql-Timstamps und Unixtimestamps(die z.B. date() benötigt) unterscheiden sich.
        ich glaube

        Kommentar


        • #5
          Ok, habe mich anscheinend wirklich falsch ausgedrückt


          Also erstmal weiß ich, wie man ein Datum formatieren kann date() usw, was ich aber NICHT weiß, wie ich sowas mit einem bereis gespeicherten Timestampwert mache.

          BEISPIEL:
          1.) Ich trage eine News ein, und der Timestamp dieses Eintrages wird in der Datenbank unter "timestamp" gespeichert.

          2.) Ich möchte diese Daten nun ausgeben, weiß aber nicht wie ich jetzt den Timestampwert formatieren kann.

          PHP-Code:
          $abfrage "SELECT timestamp FROM testbank";   $ergebnis mysql_query($abfrage);   
          while(
          $row mysql_fetch_object($ergebnis))   
          {   
          echo 
          $row->timestamp;   

          Bei der Variante kriege ich dann zwar den 10stelligen Zahlencode sehen, aber habe doch keine Möglichkeit mehr ihn in ein Datum umzuwandeln ..


          @ Jahlives
          Ich möchte aber den Timestampwert errechnen, damit ich später daraus den Wochentag (Montag, Dienstag usw) errechnen lassen kann.
          Bisher habe ich das Datum auch in einer sauberen Form gespeichert, dass erscheint mir aber als sehr unflexibel


          @frankburian
          Ich selber speichere Zeitangaben immer als Timestamp (Int) ab, weil ich mit den Werten besser rechnen kann, ohne andere Funktionen nutzen zu müssen!
          Genau! Und jetzt sag mir doch bitte, wie du diesen gespeicherten Timestampwert aus der DB ausließt und im nachhinein mit ihm rechnest - DAS ist meine eigentlich Frage



          Danke aber für eure Antworten, auch wenn ich es umständlich beschreibe - wir kommen noch zu einer Lösung!


          Qorum


          Edit:
          @ ministry
          Danke, ich glaube das ist die Antwort die ich gesucht habe - ich werde es nachher gleich mal ausprobieren. Ich wusster gar nicht, dass es zwei verschiedene Timestampformate gibt, dazu werde ich mich gleich mal belesen
          Zuletzt geändert von Qorum; 15.05.2007, 13:36.

          Kommentar


          • #6
            PHP-Code:
            $abfrage "SELECT timestamp FROM testbank";   $ergebnis mysql_query($abfrage);   
            while(
            $row mysql_fetch_array($ergebnis) )   
            {   
            echo 
            date("d.m.Y H:i",$row['timestamp']);   

            rechnen:

            PHP-Code:
            $abfrage "SELECT timestamp FROM testbank";   $ergebnis mysql_query($abfrage);   
            while(
            $row mysql_fetch_array($ergebnis) )   

              
            $ts $row['timestamp'];
            echo 
            'Ein tag zurück'.($ts-86400);



            // hier kommt man richtg unterdruck mit dem schnellen antworten, so das man faselfehler macht
            Zuletzt geändert von ; 15.05.2007, 13:47.

            Kommentar


            • #7
              Also wenn dein Timestamp ein Integer Wert (Unix Timestamp) in der DB ist dann
              PHP-Code:
              $zeiten = array();
              $sql "SELECT timestamp FROM table";
              $res myslq_query($sql);
              while(
              $re=mysql_fetch_array($res)){
                
              $zeiten[] = date('d.m.Y',$re['timestamp']);

              eine entsprechende Abfrage an die DB, Resultat auslesen und die Daten formatieren

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Original geschrieben von frankburian
                Ich selber speichere Zeitangaben immer als Timestamp (Int) ab, weil ich mit den Werten besser rechnen kann, ohne andere Funktionen nutzen zu müssen!
                Kurzsichtig - sobald du Datumsoperationen bereits DB-seitig ausführen willst - müssen nicht mal "Berechnungen" sein, eingeschränkte Selektion nach Daten, Guppierung nach Monat/Jahr, etc. reichen aus - fährst du mit den Datentypen der DB besser.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Soo,

                  danke für die vielen Antworten, es funktioniert jetzt wie ich es will UND ich bin um einiges schlauer!

                  Wenn ich wieder eine Frage haben sollte, komme ich zu euch!


                  Ein dankender,
                  Qorum

                  Kommentar

                  Lädt...
                  X