Unixtimestamp ordenlich ausgeben in PHP

Moin,

frage mal wieder meine DB ab - passt im Grunde super.

SELECT from\_unixtime(RptLstWrtTime/1000) FROM `database` where id='2015' 

Hier gibt er mir im MySQL-Admin das korrekt DAtum aus.

Wie frage ich das mit PHP ab?
Habe -->

$dbanfrage = (" SELECT \* FROM database where id='".$\_POST['id']."' "); 

 $result = mysql\_db\_query ($dbname, $dbanfrage, $dbverbindung);
 $ausgabe = mysql\_fetch\_array ($result);

 echo "Date: ";
 echo "$ausgabe[RptLstWrtTime]";
 echo "
";
 }
 echo mysql\_error();

Hier gibt er mir das „Datum“ ja logischerweise :smile: als Timestamp aus, wie wandle ich es nun in GermanDate um?

Gruß Rolf

Hallo Rolf,

auch wenn wir dir gerne helfen, wäre es für alle sinnvoller wenn du erst ein tutorial durcharbeitest und dann mit google suchst falls du etwas nicht weisst bevor du hier deine fragen stellst.

gerade bei einer sache wie das formatieren von UNIX_TIMESTAMPS ist mal etwas was du sicher nicht als erster machst.

In PHP gibt es dazu die funktion Date
bitte schaue dir die ausführlich dokumentation an:
http://de3.php.net/manual/de/function.date.php

Beisepiel:
echo date(‚d.m.Y‘, $timestmp);

Hallo Rolf,

auch wenn wir dir gerne helfen, wäre es für alle sinnvoller
wenn du erst ein tutorial durcharbeitest und dann mit google
suchst falls du etwas nicht weisst bevor du hier deine fragen
stellst.

aber genau das hab ich doch gemacht.

www ist immer wirklich nur meine letzte „Rettung“ :smile:

das mit dem Format also date(‚d.m.y‘,) funtkioniert ja eben leider nicht, sorry hatte das nicht mit reingeschrieben.

gerade bei einer sache wie das formatieren von UNIX_TIMESTAMPS
ist mal etwas was du sicher nicht als erster machst.

In PHP gibt es dazu die funktion Date
bitte schaue dir die ausführlich dokumentation an:
http://de3.php.net/manual/de/function.date.php

Beisepiel:
echo date(‚d.m.Y‘, $timestmp);

ich hab ja mein Unixstamp Das „Feld“ auf der MySQL heisst RptLstWrtTime

Hier gibt er mir ja die UNIX"zeit" aus mit 124050401000…Um auf der SQL-Admin das Datum korrekt ausgeben zu lassen rechne ich ja gleich um
from_unixtime(RptLstWrtTime/1000)
Das klappt! Hier gibt er mir 2009-04 20:00:01 aus.

Wenn ich nun im PHP die Abfrage umwandeln will -->

" SELECT from\_unixtime(RptLstWrtTime/1000) FROM tabelle where id='".$\_POST['id']."' "

und so augeben will -->

echo date('d.m.y', $ausgabe);

dann meint er Warning: date() expects parameter 2 to be long, array given in C:\xampp\htdocs\reports.php on line 35
Zu dieser Fehlermeldung find ich leider keine Lösung.

Gruß Rolf

In dem moment wo du es doch per sql umwandelst ist es doch kein timestamp mehr sondern ein datum, welches du wie du merkst, nicht per date formatieren kannst.

nimm die format funktion doch einfach asu deinem sql raus wenn du sie nicht in phpmyadmin gebrauchst sondern direkt in php.

Hallo,

in der DB steht also ein Unix-Timestamp ?

SELECT from_unixtime(RptLstWrtTime/1000) FROM database
where id=‚2015‘

Warum dividierst du dann hier nochmal durch 1000 ? Stehen da evtl. ms statt Sekunden ?

2 Möglichkeiten, eine ist die date-Funktion in PHP:

$dbanfrage = (" SELECT * FROM database where
id=’".$_POST[‚id‘]."’ ");

$result = mysql_db_query ($dbname, $dbanfrage,
$dbverbindung);
$ausgabe = mysql_fetch_array ($result);

echo "Date: ";
echo „$ausgabe[RptLstWrtTime]“;

echo „“ . date(„d.m.y“, $ausgabe[RptLstWrtTime]) . „“;

(evtl. da noch durch 1000, wenn du ms hast).

  1. Möglichkeit ist, das direkt in der DB machen zu lassen:
    SELECT *, DATE_FORMAT(FROM_UNIXTIME(RptLstWrtTime), ‚%d.%m.%y‘) AS datumFormatiert FROM …

Statt dem * besser die restlichen Spaltennamen schreiben, aber so geht es auch, ist nur das Datum 2x im Ergebnis (einmal formatiert, einmal als Timestamp). In der Ausgabe musst du dann natürlich datumFormatiert ausgeben. Das mit den ms analog, ggfs. muss die /1000 noch rein.

Alex

Joap,

genau das hatte ich gemeint.

Danke und Gruß
Rolf