[SQL allgemein] Datentyp für RSS Zeit

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

  • [SQL allgemein] Datentyp für RSS Zeit

    Hallo

    Welcher Datentyp eignet sich denn am besten für die Zeit eines
    RSS Feeds?
    Wie wird die Zeit dann korrekt ausgelesen damit die Feedreader
    sie richtig erkennen?
    Ein Codebeispiel wäre nett. Danke!

  • #2
    Für das auslesen bist du zuständig, allgemein eignet es sich am besten Datums- und Zeitangaben in dem dafür vorgesehenen DATETIME zu speichern.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Ich bekomme es leider nicht richtig hin, das Datum auszulesen.
      Hab jedes Datum durch, Vergangenheit, Zukunkft, nur leider nicht die
      Gegenwart. Daher bat ich um eine Codebeispiel.

      Kommentar


      • #4
        Was willst du???

        Willst du das aktuelle (gegenwärtige) Datum vom MySQL server holen, oder ein beliebiges Datum aus der DB?

        Was ist dein Problem?

        Kommentar


        • #5
          Ich glaube er ist dabei ein RSS-Feed auszugeben und weiß nicht in welchem Format er die Zeitangaben darin schreiben soll.

          Ich glaube RSS 2.0 hätte es gern in der Form
          Sat, 24 Aug 2007 23:01:01 GMT
          was leider nicht ganz date('r') entspricht. Ich könnte mich aber auch irren. Google nach RSS date format.

          Kommentar


          • #6
            Richtig geraten.
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              Was willst du???

              Willst du das aktuelle (gegenwärtige) Datum vom MySQL server holen, oder ein beliebiges Datum aus der DB?

              Was ist dein Problem?
              Bin dabei ein RSS Feed zu erstellen welcher die Daten aus einer
              Datenbank liest. Das mit dem Datum klappt leider nicht.
              Daher würde ich gern wissen welcher Datentyp sich für die Ausgabe
              für RSS eigent?
              Dazu weiß ich nicht wie man das Datum dann richtig ausliest,
              damits es richtig erkannt wird. Es wird leider immer das falsche
              Datum ausgegeben.
              ICh suche dazu ein Codebeispiel, damit ich mich danach richten kann.
              Das mit date("r",...) habe ich auch schon öfters gelesen, das gibt aber
              leider auch nicht das richtige Datum aus, da ich nicht weiß, welcher
              Datentyp dafür geeignet ist.

              Ich hoffe ihr könnt mir weiterhelfen.

              Kommentar


              • #8
                Daher würde ich gern wissen welcher Datentyp sich für die Ausgabe für RSS eigent?
                Der Datentyp hat nichts mit der Ausgabe zu tun. Ein Datum mit Zeit speichert man natürlich als DATETIME. Das sagt schon der Name.

                Dazu weiß ich nicht wie man das Datum dann richtig ausliest, damits es richtig erkannt wird. Es wird leider immer das falsche Datum ausgegeben.
                Hört sich für mich an wie "funktioniert nicht" und das ist keine Problembeschreibung. Alternativ könntest du auch einfach anfangen zu weinen. Aber dann kann dir auch keiner Helfen.

                Das auslesen des Datums wird aber wohl hoffentlich nicht dein Problem sein. Vielmehr die Formatierung. Dafür gibt es DATE_FROMAT(). Welch Wunder, auch hier ist wieder der Name Programm.

                ICh suche dazu ein Codebeispiel, damit ich mich danach richten kann.
                Also, als ich meine Feed installiert habe, bin ich ehrlich innerhalb weniger Sekunden auf das erste ergebnis gestoßen, wirklich.

                Das mit date("r",...) habe ich auch schon öfters gelesen, das gibt aber leider auch nicht das richtige Datum aus, da ich nicht weiß, welcher Datentyp dafür geeignet ist.
                Na, wer das Manual lesen kann, erkennt dass date einen UNIX-Timestamp erwartet. Wo ist das Problem?

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  Der Datentyp hat nichts mit der Ausgabe zu tun. Ein Datum mit Zeit speichert man natürlich als DATETIME. Das sagt schon der Name.
                  Gut, das habe ich.

                  Original geschrieben von TobiaZ
                  Hört sich für mich an wie "funktioniert nicht" und das ist keine Problembeschreibung. Alternativ könntest du auch einfach anfangen zu weinen. Aber dann kann dir auch keiner Helfen.
                  Richtig, es funktioniert nicht. Wie ich weiter oben geschrieben habe,
                  habe ich einmal das Datum ... 1970 oder ... 2038 raus,
                  aber das richtige kommt nicht.

                  Original geschrieben von TobiaZ
                  Das auslesen des Datums wird aber wohl hoffentlich nicht dein Problem sein. Vielmehr die Formatierung. Dafür gibt es DATE_FROMAT(). Welch Wunder, auch hier ist wieder der Name
                  Programm.

                  Na, wer das Manual lesen kann, erkennt dass date einen UNIX-Timestamp erwartet. Wo ist das Problem?
                  Hier ist das Problem. Ein Unix-Timestamp wird erwartet,
                  aber in der Datenbank habe ich doch DATETIME.

                  Kommentar


                  • #10
                    Schön, auf das was du verstanden hast, antwortest du und der rest fällt untern Tisch.

                    Aber ich will dir noch einen sprechenden Funktionsnamen nennen: UNIX_TIMESTAMP()

                    Besser wäre es, sich mit DATE_FORMAT zu beschäftigen, aber ich ahne, dass du sowieso nur auf ne schnelle, einfache, fertige Lösung aus bist, das hast du ja auch schon mehrfach gepostet.

                    Kommentar


                    • #11
                      Was ist denn untern Tisch gefallen?

                      Kommentar


                      • #12
                        z.B. dass du DATE_FORMAT() benutzen sollst.

                        Kommentar


                        • #13
                          Ahso, sorry.
                          ich hab das dann mal so formatiert, wie das de w3c Validation Service
                          gern hätte:
                          "SELECT DATE_FORMAT(voe, '%a, %d %b %Y %H:%i:%s +0200') AS voe FROM voes"
                          Jetzt kommt die Meldung vom Validation Service:
                          lastBuildDate must be an RFC-822 date-time
                          Die Ausgabe $row['voe']; ergibt das gewünschte Datum:
                          Wed, 02 Oct 2002 15:00:00 +0200

                          Verwundert mich doch.

                          Kommentar


                          • #14
                            zeig mal den feed.

                            Kommentar


                            • #15
                              PHP-Code:
                              <?php
                              include 'dbconnect.php';
                              header('Content-type: text/xml');
                              echo 
                              '<?xml version="1.0" encoding="ISO-8859-1"?>';
                              ?>

                              <rss version="2.0">
                                  <channel>
                                      <title>Veröffentlichungen localhost.de - RSS Feed</title>
                                      <link>[url]http://localhost.de[/url]</link>
                                      <description>Veröffentlichungen</description>
                                      <language>de-de</language>
                                  <copyright>© 2007 localhost.de</copyright>
                                      <?php
                                      $sql 
                              "SELECT DATE_FORMAT(voe, '%a, %d %b %Y %H:%i:%s +0200') AS voe FROM voes ORDER BY voe DESC LIMIT 0,1";
                                      
                              $result mysql_query($sql) OR die(mysql_error());
                                      
                              $row mysql_fetch_assoc($result);
                                      
                              ?>
                                      <lastBuildDate><?php $row['voe']; ?></lastBuildDate>
                                      <?php
                                      $sql 
                              "SELECT titel, beschreibung, voe, '%a, %d %b %Y %H:%i:%s +0200') AS voe, link, autor FROM voes LIMIT 0,20";
                                      
                              $result mysql_query($sql) OR die(mysql_error());
                                      while (
                              $row mysql_fetch_assoc($result)) {
                                      
                              ?>
                                      <item>
                                          <title><?php echo $row['titel']; ?></title>
                                          <description><?php echo $row['beschreibung']; ?></description>
                                          <pubDate><?php $row['voe']; ?></pubDate>
                                          <link><?php echo 'http://localhost.de/voes/' $row['link'] . '.php'?></link>
                                          <author><?php echo $row['autor']; ?></author>
                                      </item>
                                      <?php
                                      
                              }
                                      
                              ?>
                                  </channel>
                              </rss>

                              Kommentar

                              Lädt...
                              X