mysql/php: Datumsformat
fatmike182 14.03.2007 - 11:02 601 8
fatmike182
Agnotologe
|
Für ein forum-ähnliches Tool (todolist) verwende habe ich nur 1 Tabelle in welche das Erstellungsdatum & das Antwortdatum bzw Fertigstelldatum gespeichert werden.
Für gewöhnlich mach ich sowas mit datetime & now() was allerdings das Format YYYY-MM-DD HH:MM:SS zur Folge hat. (was ich normalerweise mit split weiterverarbeite)
Nachdem ich aber leider mehrere Datetime-felder habe möchteich nicht alle bei der Ein- oder Ausgabe splitten. Gibt es eine andere Möglichkeit, Datum & Zeit für mich sinvoll auszugeben (DD.MM. HH:MM wäre super; jedenfalls brauch ich sowohl Jahr als auch Sekunden nicht)
tia, Michi
Bearbeitet von fatmike182 am 14.03.2007, 12:01
|
dio
Here to stay
|
|
fatmike182
Agnotologe
|
thx - hab ich mir schon durchgeschaut, aber ich seh mich nicht wirklich raus. Ich hätte zB eine Abfrage $query_ready = mysql_query("SELECT * FROM $table_todo
WHERE `status` LIKE 'erledigt' AND content_id = 0
ORDER BY `done_datetime` DESC");
die wird in einer while-Schleife aufgefangen & ausgegeben:
while($zeile_r = mysql_fetch_assoc($query_ready)) {
echo "<tr>";
echo "<td>".$zeile_r['author']."</td>";
echo "<td>".$zeile_r['datetime']."</td>";
echo "<td>".$zeile_r['done_datetime']."</td>";
echo "</tr>";
}
dann müsste ich in der Schleife nochmal 2 Abfragen an die DB machen, oder versteh ich da was nicht?
|
Obermotz
Fünfzylindernazi
|
Ich würd in der Datenbank einen Timestamp speichern, mit dem du dann per date("d m Y", timestamp) das Datumsformat ausgibst, welches du brauchst...
|
dio
Here to stay
|
am besten ist, du speicherst es in der Datenbank als Typ datetime und wandelst es bei der Abfrage in einen Unix Timestamp um (iirc. UNIX_TIMESTAMP()). Um es in die DB zu schreiben kannst du die Funktion FROM_UNIXTIME() verwenden. So musst du dich nicht darum kümmern.
|
fatmike182
Agnotologe
|
echo date("d.m.Y H:i:s", strToTime($data['date'])); // 02.01.05 13:14:15 hätte ich auch noch gefunden, sieht nicht so schlimm aus & wäre kompakt. Aber den unix-timestamp hab ich bisher immer überlesen, obwohl er viel gelobt wird. Oper8or & dio: so gemeint:? http://www.schattenbaum.net/php/datum.php so werd ich das wohl machen! Aja: warum in der Db trotzdem datetime?
|
dio
Here to stay
|
Aja: warum in der Db trotzdem datetime? Ist doch aussagekräftiger als ein timestamp .
|
fatmike182
Agnotologe
|
hm - ok, werd ich mir nohc überlegen, ob ich gleich den unixtimestamp in die DB speicher oder beim Auslesen umwandel.
Aber das Format erschreint mir wirklich komfortabel - thx nochmal!
|
Rektal
Here to stay
|
Eine Erfahrung aus der Praxis: nimm datetime, weil du beim debuggen, sprich du schaust rein in die DB und kannst das Datum sofort erkennen, dir einfach wirklich was sparst. wenn du mal irgendein Problem hast und das Datum dabei für die relevant ist, verfluchst du dass es ein einfacher nicht aussagekräfter integer ist. Ich hab mich schon so oft darüber geärgert, dass es eine interne developer policy ist keine einfachen integers mehr zu verwenden. Ausser es kann mir eine mit einen gutem Grund gegenargumentieren
|