Datum formatieren

RTS

Mitglied
Hallo,
ich habe das Problem das bei meiner PHP-Seite das Datum in der internationalen Formatierung ausgegeben wird, was ja bei MySQL auch ganz normal ist, nur das umwandeln bekomm ich irgendwie nicht hin.

Hier meine Seite:
PHP:
<?php
$seite = $_GET["seite"];
if(!isset($seite))
   {
   $seite = 1;
   }
$link = mysql_connect("localhost","web306","cdtsmmf") or die ("Keine Verbindung moeglich");
mysql_select_db("homepage") or die ("Die Datenbank existiert nicht");
$eintraege_pro_seite = 10;
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
$abfrage = "SELECT * FROM news LIMIT $start, $eintraege_pro_seite";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
    {
   echo "<div class=\"content_head\">".$row->newstitel."</div><div class=\"content_body\"><div style=\"text-align:right;float:right;font-size:12px\">".$row->newsrelease."</div>".$row->newstext."</div>";
   }
$result = mysql_query("SELECT newsid FROM news");
$menge = mysql_num_rows($result);
$wieviel_seiten = $menge / $eintraege_pro_seite;
echo "<div align=\"center\">";
echo "<b>Seite:</b> ";
for($a=0; $a < $wieviel_seiten; $a++)
   {
   $b = $a + 1;
   if($seite == $b)
      {
      echo "  <b>$b</b> ";
      }
	else
      {
      echo "  <a href=\"?seite=$b\">$b</a> ";
      }
   }
echo "</div>";
?>

Und wenn ich schon dabei bin ... noch nen kleines Problem, bei der Ausgabe der News werden mir ä,ö,ü und ß als Raute mit Fragezeichen dargestellt, wie löse ich dieses Textformatierungsproblem?

MfG
Thomas
 
Ich sehe nirgends in deinem Code, das du ein Datum ausgibst. Oder soll das dieses $row->newsrelease sein?

Und wenn ich schon dabei bin ... noch nen kleines Problem, bei der Ausgabe der News werden mir ä,ö,ü und ß als Raute mit Fragezeichen dargestellt, wie löse ich dieses Textformatierungsproblem?

Du verwendest vermutlich eine UTF8-codierte Datenbank. Dann müsstest du deine Seite auch als UTF8 festlegen. Das macht man mit Hilfe eines Meta-Tags:

HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Außerdem müsstest du auch noch den Client-Zugriff zur Datenbank mit UTF8 einstellen. Direkt nach dem Öffnen der Verbindung einfach einen Query senden:

PHP:
mysql_query("SET NAMES utf8");
 
Hallo,

ist $row->newsrelease ein Timestamp?
Wenn ja date(), wenn nein ganz schnell drauf umsteigen ;)
Dazu siehe mktime()

Ich hoffe mal ich verstehe, was du meinst, wenn nein bitte um Erklärung :p
 
Sry bin nicht so erfahren mit PHP und MySQL ...
Meine Idee: Der Eintrag "Newsrelease " soll ein Datum sein (tt.mm.jjjj) Ausgabe stimmt nur die Formatierung möchte ich anders haben so wie in den Klammern erwähnt ... also brauche ich "nur" das Datum umwandeln entweder per MySQL wenn möglich oder per PHP ...

Wegen dem UTF8 ... wie meinst du das mit dem MySQL query könntest du mir zeigen an welcher position das hin muss?
also der Text den es betrifft ist "$row->newstext"
 
Zuletzt bearbeitet:
Hallo,
dann guck dir wie gesagt mal mktime() und date() an.
Wenn du jetzt Beispielsweise dein Datum von oben nimmst kannst du per mktime einen Timestamp erstellen und mit date() diesen formatieren, wie du lustig bist.
 
Mit SQL lässt sich das Datum leichter formatieren. Du kannst also bereits im SQL das Datum als formatierter Text ausgeben.

PHP:
SELECT *, DATE_FORMAT(newsrelease, '%d.%m.%y') AS datestring  FROM news LIMIT $start, $eintraege_pro_seite

Ab PHP 5 gehts auch einfach in PHP:
PHP:
$datestring = date_format($row->newsrelease, 'd.m.Y');
 
Danke Datum ist perfekt ... jetzt nur noch das Problem mit dem Zeichen ... nur mit dem ZHeichenproblem komm ich noch nicht auf nen grünen Nenner :p ... immer noch Karo mit Fragezeichen ...
weis nicht genau wie ich das MySQL query einbinden soll ... bitte helfen:confused:
 
Z.B. so:

PHP:
$link = mysql_connect("localhost","web306","cdtsmmf") or die ("Keine Verbindung moeglich");
mysql_query("SET NAMES utf8");
mysql_select_db("homepage") or die ("Die Datenbank existiert nicht");

Da, wo in deinem Script der HTML-Head gesetzt wird, fügst du noch den og. Meta-Tag ein.
 
Zurück