[Variablen] Erstellungsdatum aus der Datenbank herauslesen

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

  • [Variablen] Erstellungsdatum aus der Datenbank herauslesen

    Ich arbeite mit Joomla, das ist ein CMS mit Administrtionsbereich. Bei dem erstellten Beitrag wird das Datum im Beitrag angezeigt, aber ich möchte das Datum oben rechts in der Ecke alleine haben. Das läßt sich auf der Admin-Ebene aber nicht umsetzen, nun habe ich gehört, dass man das Datum mit der id wohl aus dem Beitrag ermitteln kann.
    Gibt es irgendwo eine Vorlage für sowas?

  • #2
    Absolut falsches Forum!

    Schau mal in die Templates, da wird sich das wohl einfacher einstellen lassen...

    Kommentar


    • #3
      Nun im Template mußt Du auch ein php-Code eingeben, dass geht nicht, dass Du dort einfach einen Button drückst, und schwupp sitz dort mit der Einstellung Datum Erstellung> Deutsche Anzeige> z.B. 22.Januar 2006 an der richtigen Stelle.
      Man könnte ein Module erstellen, in dem man ein Script einfügt, oder eine php Datei datum.php in der der ein entsprechender Code ist.
      Hier habe ich eine Kopie von dem derzeitigen Stand: http://www.yehudi.info/test.html
      oben Rechts befindet sich das von heute geschriebene Datum, welches immer das Erstellungsdatum des Dokumentes enthalten soll, und nicht wie man es beim Template machen kann, das heutige Datum anzuzeigen. Anders ist es über Joomla nicht möglich. Also muss da wohl im php-Code eine Lösung gefunden werden.

      Kommentar


      • #4
        Sowas ähnliches suche ich, nur, dass das ganze nicht statisch ist, sondern sich immer auf das Erstellungsdatum bezieht.

        PHP-Code:
        <?php 
           $create_date 
        '23.01.2006'
           echo 
        $create_date
        ?>
        Nach dieser List:
        http://www.phpbox.de/php_befehle/date.php

        Liste der Platzhalter:
        a - amerik. Tageszeit, klein geschrieben ("am" oder "pm")
        A - amerik. Tageszeit, groß geschrieben ("AM" oder "PM")
        d - Tag des Monats, zwei Ziffern mit führenden Null (z.B. "05")
        j - Tag des Monats ohne führenden Null ("1" bis "31")
        D - Tag der Woche mit drei Buchstaben in englisch (z.B. "Mon")
        l (kleines L) - Tag der Woche, ausgeschrieben ("Monday")
        w - Tag der Woche, Ausgabe als Zahl ("0" für Sonntag)
        F - Ausgeschriebener Monat (z.B. "December")
        h - Stunde im 12-Stunden-Format mit führender Null ("01" bis "12")
        H - Stunde im 24-Stunden-Format mit führender Null ("00" bis "23")
        g - Stunde im 12-Stunden-Format ohne führende Null ("1" bis "12")
        G - Stunde im 24-Stunden-Format ohne führende Null ("0" bis "23")
        i - Minuten ("00" bis "59") L - Flag für Schalttjahr ("0" oder "1")
        m - Monat mit führender Null ("01" bis "12)
        n - Monat ohne führende Null ("1" bis "12)
        M - Monat mit drei Buchstaben (z.B. "Dec")
        s - Sekunden ("00" bis "59")
        S - Suffix der engl. Ordnungszahlen (z. B. "st","nd")
        t - Anzahl der Tage des Monats ("28" bis "31")
        U - Sekunden seit Beginn der Unix-Epoche
        Y - Jahr, vierstellige Ausgabe (z.B. "2001")
        y - Jahr, zweistellige Ausgabe (z.B. "01")
        z - Tag im Jahr ("0" bis "365")
        Z - Offset der Zeitzone gegenüber GMT in Minuten (z.B. "-43 200")
        B - Swatch-Internet-Zeit
        I - Sommerzeit ("1" bei Sommerzeit, sonst "0")
        L - Schaltjahr ("1" bei Schaltjahr, sonst "0")
        T - Zeitzoneneinstellung des Servers (z.B. "CET" für "Central European Time")
        müßte die Ausgabe d- F-Y sein.
        Zuletzt geändert von Yehudi; 23.01.2006, 06:52.

        Kommentar


        • #5
          filectime(), filemtime() und fileatime() könnten helfen.

          Kommentar


          • #6
            Das ist doch schon mal was. Ich hatte dort auch schon gesucht, nur mit "Erstellungsdatum" kam ich da nicht drauf.
            Ich habe mal den Code von fileatime genommen, und das meinem Verständnis nach abgeändert.

            PHP-Code:
            <?php
            // Gibt z.B. aus:  somefile.txt was last modified: 29. December 2006

            $filename 'somefile.txt';
            if (
            file_exists($filename)) {
               echo 
            "$filename was created: " date ("d. F Y"filemtime($filename));
            }
            ?>
            Auch wenn das Datum nicht erzeugt wird, gibt es schon mal kein Errorcode, und das ist ein gutes Zeichen.
            Da aber unterschidliche File aufgerufen werden, die alle in der Datenbank liegen, muss natürlich noch somefile.txt ausgetauscht werden.

            Kommentar


            • #7
              Du weißt aber schon, dass fileXtime() auf Funktionen des Dateisystems aufsetzt?!
              Kann man also nicht auf Dateien in einer DB verwenden. Dort muß man sich selbst helfen, indem man timestamp-Spalten unterhält.

              Kommentar


              • #8
                Ich merke schon, dass geht ohne Datenbankabfrage gar nicht.
                Unter MySQL finde ich folgendes:
                SQL-Befehl:
                SELECT *
                FROM `jos_content`
                ORDER BY `created` ASC
                LIMIT 0 , 30

                allerdings weiss ich noch nicht, wie ich das in php mit einer Datenbankabfrage hinbekommen soll.

                Kommentar


                • #9
                  mysql sind alles grundlagen...

                  Kommentar


                  • #10
                    Danke für den Link, ich habe das erst mal so in meine Seite eingebaut, und entsprechend dann Stück für Stück umgebaut. Die Datenbankabfrage klappt erfolgreich, steht zumindest auf dem Browser an der Stelle. Jetzt wäre noch die Frage, wie setze ich da die Datumsumrechnung ein?

                    PHP-Code:
                    /* Ausgabe der Ergebnisse in HTML */
                    echo "<table>\n";
                    while (
                    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
                       echo 
                    "\t<tr>\n";
                       foreach (
                    $line as $col_value) {
                           echo 
                    "\t\t<td>$col_value</td>\n";
                       }
                       echo 
                    "\t</tr>\n";
                    }
                    echo 
                    "</table>\n";

                    /* Freigeben des Resultsets */
                    mysql_free_result($result);

                    /* schliessen der Verbinung */
                    mysql_close($link);
                    ?> 

                    Kommentar


                    • #11
                      Ich habe was, dass es funktioniert:


                      PHP-Code:
                      <?php
                      global $database;

                      $id mosGetParam$_REQUEST'id' );

                      if (
                      $id) {
                          
                      $query "SELECT created FROM #__content WHERE id='$id'";
                          
                      $database->setQuery$query );
                          
                      $database->loadObject$row );
                          echo 
                      "<div class='small'>" $row->created "</div>";
                      }
                      ?>

                      wie bekomme ich da noch die beiden Sachen noch reingefriemelt :
                      "d. F Y"
                      setlocale("LC_TIME","de_DE")
                      Zuletzt geändert von Yehudi; 23.01.2006, 17:21.

                      Kommentar


                      • #12
                        Ich habe den Code jetzt noch mal geändert:

                        PHP-Code:
                        <?php
                        global $database;
                          
                        $id mosGetParam$_REQUEST'id' );
                          
                        if (
                        $id) {
                             
                        $query "SELECT created FROM #__content WHERE id='$id'";
                             
                        $database->setQuery$query );
                             
                        $database->loadObject$row );
                             echo 
                        "<div class='moddate'>" date("d. F Y",$row->created) . "</div>";
                        }
                        ?>
                        Date habe ich auf Grund von:
                        http://selfphp.de/funktionsreferenz/...ionen/date.php
                        benutzt. 'moddate' ist um die Angabe per css zu steuern.

                        Angezeigt wird aber immer noch:
                        01. January 1970

                        Kommentar


                        • #13
                          was steht in der DB?
                          Mach mal print_r($row) und poste die Ausgabe hier.

                          Kommentar


                          • #14
                            Original geschrieben von TobiaZ
                            was steht in der DB?


                            Unter "created" steht "datetime" Wenn ich in die Übersicht der Geschichten gehe, so sehe ich dort jeweils die id, die Überschrift, und created etc. unter created befindet sich das Datum, welches ich haben will. Wenn ich
                            PHP-Code:
                            echo "<div class='small'>" $row->created "</div>"
                            in der Zeile habe wird das Datum so angezeigt:
                            2001-12-24 20:07:06
                            was ja schon mal nicht schlecht ist, nur ist meine Vorstellung aber
                            24. Dezember 2001
                            Dazu muss das Datum ja umgewandelt werden. Da es sich wie ich bis jetzt raus gefunden habe um die SQL-Zeit handelt muss das wohl umgewandelt werden in einen init_timestamp, der das dann mit den Funktionionen umwandeln kann.

                            Original geschrieben von TobiaZ
                            Mach mal print_r($row) und poste die Ausgabe hier.
                            Wo soll ich diese Eingabe machen?

                            Kommentar


                            • #15
                              Ich bin einen Schritt weiter das Datum wird in z.B. "24. December 2001" ausgegeben:



                              PHP-Code:
                              <?php
                              global $database;
                                
                              $id mosGetParam$_REQUEST'id' );
                                
                              if (
                              $id) {
                                   
                              $query "SELECT created FROM #__content WHERE id='$id'";
                                   
                              $database->setQuery$query );
                                   
                              $database->loadObject$row );
                                   echo 
                              "<div class='moddate'>" date("d. F Y",strtotime($row->created)) . "</div>";
                              }
                              ?>
                              Wo bringe ich nur die Formatierung in
                              setlocale("LC_TIME","de_DE")
                              unter?

                              Kommentar

                              Lädt...
                              X