Dennis: Monatsliste erzeugen

Beitrag lesen

Hi AllesMeins,

ich empfand die DATE Felder von MySQL immer als äusserst unpraktisch. Gibt es da irgendwelche Befehle mit denen ich leicht zwischen dem PHP Format und dem MySQL Format wechseln kann?

Um einen PHP Timestamp in MySQL Format umzuwandeln, welches ja YYYY-MM-DD HH:MM:SS ist, kannst du date() verwenden:

$mysqldate = date("Y-m-d H:i:s", $phptimestamp);

Ich weiß zwar nicht, ob es die beste Methode ist, aber es geht ;-)

Speziell wenn ich die Daten mit PHP weiterformatieren und dann irgendwie ausgeben will (oder der umgekehrte Weg aus PHP ein bestimmtest Datum in eine Tabelle zu bringen) empfand ich das immer als ziemlich unpraktisch.

Wenn du die Daten ausgeben willst, kannst du sie in MySQL direkt mit DATE_FORMAT() formatieren, also z.B.

SELECT DATE_FORMAT(datumsspalte, '%Y') AS jahreszahl

dann hast du, wenn du z.B. mysql_fetch_assoc() verwendest in $_ergebnis['jahreszahl'] das vierstellige Jahr drin stehen. Was es alles für Formatierungsmöglichkeiten, wie das %Y gibt, kannst du in der MySQL Referenz Datums- und Zeitfunktionen DATE_FORMAT() nachlesen.

Um einen UNIX Timestamp zu bekommen (den du dann mit PHP weiter verarbeiten kannst), sollte dir die MySQL Funktion UNIX_TIMESTAMP:

SELECT UNIX_TIMESTAMP(datumsspalte) AS timestamp

Dabei bin ich jetzt gerade, direkt unter der Funktion UNIX_TIMESTAMP noch auf eine Funktion names FROM_UNIXTIME gestoßen und siehe da - das ist die bessere Alternative zu dem „Gemurkse” mit date(), was ich vorhin da oben beschrieb:

FROM_UNIXTIME([code lang=php]$phptimestamp)[/code]

Sollte sich z.B. in einem INSERT INTO verwenden lassen.

Hope it helps ;-)

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Schon gewusst, dass Bugs und Feature Vorschläge für das CForum ins Entwicklerforum oder in den BugTracker von WWWTech gehören und nicht hier her?