DATETIME in PHP verwenden

Wolfsbein

Erfahrenes Mitglied
Hallo
ich habe in meiner DB mehrere DATETIME-Spalten. Wie kann ich die am besten in ein PHP-Format konvertieren und anders herum? Bei PEAR habe ich nichts dazu gefunden.
 
PHP:
$datum = explode(' ', $mysqlDateTime);
$datum = array_merge(explode('-', $datum[0]), explode(':', $datum[1]));

So solltest du ein Array haben, in dem alle Elemente der Datetime enthalten sind (hab's jetzt aber nicht konkret getestet^^). Versuch's mal damit.
 
Danke aber ich habe eher an was gedacht, dass gleich Funktionen zum Sortieren etc. anbietet. Also eine ganze Klasse.
EDIT: Ich habe jetzt im PHP Magazin 3.03 einen Artikel gefunden. Aber ich lasse mir gerne noch Tipps geben :).
 
Zuletzt bearbeitet:
Ähm, wenn mich nicht alles täuscht kann MySQL doch per ORDER BY ganz einfach nach Datetime-Feldern sortieren. Wozu dann noch eine extra Klasse?
 
Naja angenommen ich habe einen Unix timestamp. Und will diesen in ein DATETIME Format konvertieren oder anders herum. Ich bin mir sicher dass das irgendjemand schon mal gemacht hat. Und ich dacht halt dass das hier jemand weiß. Notfalls werde ich das selber schreiben und dann hier veröffentlichen. Nur erhöht das dann den Zeitrahmen meines Projekts.
 
Achsooo. Alles klar - das ist sehr einfach. Pass auf:
PHP:
// Umwandlung einer Unix Timestamp ins MySQL Datetime Format

$datetime = date('Y-m-d H:i:s', $timestamp);

// Umwandlung einer MySQL Datetime zu einer Unix Timestamp

$timestamp = explode(' ', $datetime);
$timestamp = array_merge(explode('-', $timestamp[0]), explode(':', $timestamp[1]));
$timestamp = mktime($timestamp[3], $timestamp[4], $timestamp[5], $timestamp[1], $timestamp[2], $timestamp[0]);
(Keine Garantie auf Fehlerfreiheit^^ habs jetzt grad nur fix getippt)
Du kannst das ganze auch direkt im Query machen:

Code:
// Umwandlung von Timestamp zu Datetime

SELECT FROM_UNIXTIME(TimestampFeld) FROM table

// Umwandlung von Datetime zu Timestamp

SELECT UNIX_TIMESTAMP(DatetimeFeld) FROM table
 
PHP:

unix zu datetime = date Function
datetime zu unix = strtotime Function

Mysql:

unix zu datetime = from_unixtime()
datetime zu unix = unix_timestamp()
 
Das habe ich doch grad geschrieben ;P :)
Allerdings hat die strtotime() Funktion glaube ich Probleme mit MySQL-Datetimes. Daher das Workaround.
 
@SynDrome keine Absicht - hatte deine Antwort nicht gesehen
(das kommt davon wenn man keine Seitenakualisierung macht :-) )
 
Zurück