mysql/php: Datumsformat

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/mysql_php_datumsformat_177742/page_1 - zur Vollversion wechseln!


fatmike182 schrieb am 14.03.2007 um 11:02

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


dio schrieb am 14.03.2007 um 11:15

http://dev.mysql.com/doc/refman/5.0...-functions.html

am besten einfach nur die Daten abfragen, die du brauchst


fatmike182 schrieb am 14.03.2007 um 11:24

thx - hab ich mir schon durchgeschaut, aber ich seh mich nicht wirklich raus.

Ich hätte zB eine Abfrage

Code: PHP
$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:
Code: PHP
 
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 schrieb am 14.03.2007 um 11:28

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 schrieb am 14.03.2007 um 11:39

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 schrieb am 14.03.2007 um 11:53

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 schrieb am 14.03.2007 um 11:58

Zitat von fatmike182
Aja: warum in der Db trotzdem datetime?
Ist doch aussagekräftiger als ein timestamp :).


fatmike182 schrieb am 14.03.2007 um 12:01

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 schrieb am 14.03.2007 um 14:14

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 :)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025