Englisches Datumsformat (dank MySQL-DB) blogseitig ins deutsche konvertieren?

  • Hi,

    mein Theme bezieht für eine Anzeige der letzten Kommentare seine Daten direkt aus der MySQL-DB. Leider gibt der aber, so wie ihn mein Hoster eingestellt hat, nur eine englische Schreibung für das Datum des Artikels aus (%Y-%m-%d %H:%i:%s).

    Leider kenne ich mich mit CSS/PHP nicht gut aus und komme, anders als bei den PHP-basierten Datumsangaben, nicht mehr weiter: Weiß jemand von euch eine Möglichkeit bzw. einen Trick, wie man dieses Datum irgendwie auf Deutsch bekommen kann?

    Hier das Testblog: Mull Blog ("Letzte Kommentare")

    Hier der Code der "Functions.php", in der die DB abgefragt wird für die Kommentare:

    Würde mich sehr freuen, wenn mir jemand helfen könnte!

    Gruß

    MTB-Spike

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Also ich glaube, da wird das Datum gar nicht ausgegeben. Wenn ich mich jetzt nicht völlig verguckt habe, müsste das nämlich

    Code
    $data[4]

    sein, welches ich nicht finden kann. Kann mich aber auch irren.

    Vielleicht mal die comments.php öffnen und nachsehen, was da in den Klammern steht:

    PHP
    <?php comment_date('j. F Y') ?>
  • Hallo,

    jottlieb:

    Danke für den Link, aber den kenne ich schon. Die Einstellungen im Adminpanel werden ohnehin komplett ignoriert von diesem Theme. (Im Moment eingestellt: Datumsformat: l, Zeitformat: g, und man sieht nichts davon.)

    Aber auch so glaube ich, dass die Datumsanzeige, die ja direkt aus der DB kommt, sich davon kaum beeindrucken lassen dürfte, oder? Ich meine, die anderen Datumsanzeigen habe ich alle per Hand so modifiziert, dass das korrekte Datum abgerufen wird, aber das sind ja auch die PHP-Befehle, wenn ich das richtig verstanden habe, also quasi auf einer anderen Ebene als das SQL-Datum.

    Astrid: Wie meinst du das, dass es

    PHP
    §data[4]

    heißen müsste? Wenn du nachzählst, ist comment_date doch das fünfte abgefragte Element in der Zeile, insofern kann ich deinen Einwand nicht ganz nachvollziehen.

    Noch der Ausschnitt aus der comments.php:

    PHP
    <div class="cmt-meta">
                    <span class="cmt-author"><?php comment_author_link() ?></span>
                    <span class="cmt-date"><?php comment_date(__('F j, Y')) ?></span>
                    <span class="cmt-time">
                        <a href="#comment-<?php comment_ID() ?>"><?php comment_time(__('g:i a')) ?></a>
                        <?php edit_comment_link(__("Edit"), ' · ', ''); ?>
                    </span>
                </div>

    Auch hier hatte ich schon Hand angelegt: die alte Schreibung hatte nicht die Verweise auf die Sprachdatei; dennoch blieb ich erfolglos. Oder habe ich das doch nicht richtig modifiziert, kann ja auch sein? Ich experimentiere gleich nochmal!

    Gruß

    MTB-Spike

    Einmal editiert, zuletzt von MTB-Spike (15. September 2007 um 21:16)

  • Astrid:

    Nachtrag: Habe herumgespielt, aber ohne Effekt. Wie gesagt, die Servervariable hat exakt das angezeigte Format, ansonsten taucht die Schreibung YYYY-MM-DD nirgends im gesamten Theme auf, das hätte ich gesehen.

  • Das 5. Element (den Film finde ich übrigens klasse ;-)) hat die Nummer 4, weil arrays immer mit 0 beginnen. Das war übrigens kein Einwand, sondern versuchte Fehlerlokalisation.

    Also wenn Du das über die Theme Dateien nicht abwickeln kannst, gibt es vielleicht noch eine weitere Funktion, irgendwo. Das ist aber auch nur eine Vermutung. Genaueres könnte ich vielleicht sagen, wenn ich das Theme mal bei mir installieren würde. Der Rest ist Rätselraten bzw. ich bin auch sicher kein Datenbank Freak. Vielleicht kann Dir ja jemand anderes helfen.

    Nachtrag: War wieder mal zu langsam. Vielleicht hat Dir ja Putzlowitsch bereits geholfen.

  • Astrid:

    Okay, der Link zum Theme ist unten im Fußbereich, nur zu :)
    Ich finde das 5. Element auch toll, da haben wir etwas gemeinsam. Aber wegen der 4 (5) im Code: Ich hatte da zwischenzeitlich schon dran herumgespielt, und je nachdem, welche Zahl ich eingab, kam je ein anderer Unsinn heraus; mit der 4 kam die Mailadresse des Kommentarautors, daher mein Schluss, dass die Daten in der Array(?)-Zeile von 1-6 durchzuzählen sind.

    Putzlowitsch

    Okay, danke soweit, leider komme ich jetzt ins Schwimmen! Würdest du mir noch ein wenig weiter helfen?

    In welcher Datei und an welcher Stelle muss ich denn jeweils neuen Code einsetzen, und wie müsste das aussehen? Die Seite von MySQL AB verstehe ich dabei noch weniger als die andere... Sorry, wäre super nett, wenn du mir da detailliertere Anweisungen geben könntest!

  • Astrid:

    Warum auch immer dir das mit dem fünften Element so wichtig ist ;), für Außenstehende muss ich noch ergänzen: Zeile 27 gilt nur im originalen functions.php, da ist Gravatarcode drin, den ich für mein Blog entfernt hatte.

    Ich würde liebend gerne auch deinen Trick mit str_replace anwenden, ich bin nur so schrecklich unwissend, wie man sowas schreibt... würdest du mir das Cödchen übernahmefertig schreiben? Ich verspreche, dass ich dadurch auf jeden Fall noch mehr über php lernen werde! ^^

  • Kurz zur Info: WordPress speichert Datumsangaben bereits formatiert in der Datenbank, damit man diese bei der Abfrage entsprechend bearbeiten kann. Sich das Datum erst als Zeichenkette zu holen, um es dann doch wieder via PHP in ein Datum zu verwandeln ist doppelt gemoppelt, hält in diesem Fall aber nicht besser. Dann doch lieber gleich das Datum wie gewünscht aus der Datenbank holen.

    Und wen das nicht interessiert, hier die neue Abfrage:

    PHP
    $query = ("SELECT ID, post_title, comment_author, comment_id, comment_author_email, DATEFORMAT(comment_date,'%d.%m.%Y'), comment_post_ID FROM  $wpdb->posts, $wpdb->comments WHERE $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND $wpdb->comments.comment_approved = '1' AND $wpdb->comments.comment_type = '' AND comment_author != '' ORDER BY $wpdb->comments.comment_date DESC LIMIT $num");

    Damit erhält man eine Ausgabe a la 16.09.2007. Falls anders gewünscht, hier gibts sämtliche Werte.

    Gruß Jeriko

    Jeriko - Design, Style, Photographie

  • Astrid:

    Vielen Dank für den Tipp, ich experimentiere schon fleißig. Leider wird mit dem Plugin ein bisschen das Layout verändert, da war vorher so eine schöne Trennzeile zwischen den Kommentaren. Vielleicht kann ich das ja aber irgendwie noch einbauen...

    Jeriko:

    Danke für deinen Code, leider klappt es nicht. Es kommt diese Fehlermeldung:

    Zitat

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /www/htdocs/letmesee/wordpress/wp-content/themes/dark/functions.php on line 8

    Woran kann das nur liegen?

  • Jeriko

    Ich habe die Korrektur vorgenommen und es passt, Danke! Wie beschrieben, ist diese Lösung näher am wirklich exzellent gemachten Original (dank Wolfgang Bartelme) und ich wollte daher gerne ein bisschen mehr an der functions.php herumspielen, um die Kommentarliste auf diesem Wege ein bisschen aufzubohren. Ich habe es "geschafft" :mrgreen:, aus der Datenbank vorerst den Beitragstitel zu verlangen ("post_title") und dann habe ich in der echo-Liste eine Zeile hinzugefügt, dass dieser Titel auch eingefügt wird ("echo $data[7];"). Allerdings sitzt diese Info jetzt ohne Leerzeichen direkt hinter dem Kommentarautor.

    Zitat

    Mr WordPressHello world!
    14.09.2007 13:26 Uhr

    So hab ich den Code umgebaut:

    Meine Versuch, zwischen die echos was einzubauen, ist aber schiefgegangen ("echo ' in '"). Mein Problem ist die unglaubliche Informationsfülle bei MySQL AB, und das auch noch in für den Laien schwer verständlichen Ausdrücken - kannst du mir sagen, wo ich nachlesen kann, wie ich diese echo-Liste so umbauen kann, dass die Kommentare so aussehen wie ich will?

  • Das klappt wunderbar. Bitte sag mir noch, wo kann ich sowas bei MySQL AB :: Developer Zone oder woanders finden? Ich weiß nämlich gar nicht, nach welchem Begriff ich gucken muss in der Dokumentation. Damit ich später mal nachschauen kann wenn ich noch mehr über dieses echo wissen will! Insbesondere, wie ich einen comment_excerpt mit bestimmter Länge einbauen kann, das wäre jetzt mein nächstes Ziel. Vielleicht schaffe ich das ja sogar selbst! :)

    Danke!

    Manuel

    Einmal editiert, zuletzt von MTB-Spike (16. September 2007 um 22:05)

  • Boa, Ihr ward ja fleißig. Und das am Sonntag. Da freue ich mich ja jetzt wirklich, dass letztendlich alles zur Zufriedenheit geklappt hat.

    Deine Frage zu den grundsätzlichen PHP-Funktionen:
    Ich schaue im Notfall immer bei SelfPHP vorbei. Dort erfährt man eigentlich alles, was man wissen muß.

    Deine Funktion enthält übrigens nicht gerade die elegante Variante. Stichwort Trennung von PHP und HTML. PHP-Tags schließen und anschließend HTML ganz normal ausgeben, wäre die bessere Lösung. Also lieber Klammer zu und auf ECHO verzichten:

    PHP
    <?php ...PHP-Code ?>
    HTML Tags...
    <?php ...nächster PHP-Code ?>

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!