WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Datumsformat MySQL » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Datumsformat MySQL
von Thalion

Burner schrieb am 2002-06-30 11:31 :
Hallo zusammen,

ich bastle gerade ein Gästebuch. Das Script funktioniert auch schon soweit. Ich speichere die Einträge in einer SQL Datenbank. Nun meine Frage. Zur Zeit wird das Datum folgendermaßen ausgegeben:

Name schrieb am 2002-06-29 18:22:07

Nun möchte ich aber das das Datum in etwa so dargestellt wird:

Name schrieb am 29.06.02 um 18:22 Uhr

Kann mir da einer weiterhelfen??

Danke schon mal im voraus.

Greets Burner

[ Diese Nachricht wurde geändert von: Burner am 2002-06-30 11:31 ]


Ok ich gebs ja zu ... bissl lang her das Thema aber da ich selber eben das Problem hatte und irgendwie keine Lust habe die schon gespeicherten DB-Einträge abzuändern, hab ichs halt ganz simpel gemacht:

Ersteinmal wie gehabt die Einträge auslesen, dann abändern:

1: 
2: 
3:
$Datumsteile = explode("-",$News_Datum[$i]); 


^ Es werden die Strings als Trennzeichen benutzt und die 3 Datumsteile (Jahr, Monat,Tag) in ein Array übernommen.


1: 
2: 
3:
$News_Datum[$i] = $Datumsteile[2].".".$Datumsteile[1].".".$Datumsteile[0];


Nun hast du dein Datum im Array und kannst es umstellen wie du willst.
von slackerbitch
hehe, manchmal sollte ich doch mal nen smiley nutzen.
das mit dem kulturimperialismus war hier nicht ganz ernst gemeint und bezog sich nur auf die aussage, man sollte auch hier das datum im stil YYYY-MM-DD schreiben.
da bin ich nunmal dagegen, der sprachidentitaet willen. das ist schlicht sinnlos.
und das mein ich jetzt auch ernst. ich will nicht ploetzlich sagen muessen, dass ich am februar, den 36. geburtstag habe. yo!

genug ot.
von c3o
Jaja, komm mal wieder runter von deiner Palme.

Imperialismus: "Bezeichnung für die Bestrebungen einer politischen bzw. territorialen Macht, die Herrschaft oder zumindest Kontrolle über andere Länder oder Völker zu erhalten." (Encarta)
Das setzt also einen Aggressor voraus. Wenn du dir mal diese Liste anschaust - http://www.qsl.net/g1smd/isoimp.htm - wer steckt denn nun hinter diesem gemeinen Plan all diesen Ländern (nur in China wurde dieses Datumsformat angeblich schon immer verwendet, also ist es für ALLE auf der Liste neu), ein Stück ihrer jeweiligen Kultur zu stehlen? Die Freimaurer oder doch die Illuminaten?
Du bist bestimmt auch zutiefst bestürzt darüber, dass man sich einmal auf so Sachen wie Zeitzonen, UTC (früher GMT), einheitliche Längen- und Gewichtsmaße, Papiergrößen, einen gemeinsamen Kalender, ähnliche Verkehrszeichen, gleiche Eisenbahn-Spurweiten, den Euro und hunderte andere Sachen geeinigt hat -- scheiß Kulturimperialismus!
Was für ein Glück, dass man zwischen Spanien und Frankreich den Zug wechseln muss weil die Spur unterschiedlich ist, und dass keiner so sicher ist was das Wort "billion" aus dem Zusammenhang gerissen tatsächlich bedeutet -- wenigstens da haben einige Länder ihre Kulturen noch gegen die bösen, gegenseitigen Imperialisten verteidigen können!

Aber Scherz beiseite, Faulenzerhure: Die Kurzversion des Datumsformates hat doch nichts mit der deutschen Sprache, und schon gar nicht der Kultur zu tun.
Mehrzahl-Apostrophe sind im übrigen im Englischen genauso falsch -- das hat also ebenfalls nichts mit Kulturimperialsmus, sondern höchstens mit Dummheit zu tun.
Was natürlich keineswegs heißt, dass ich "Denglisch" auch nur im geringsten gutheiße.
von slackerbitch
scheiss kulturimperialismus.
es mag zwar fuer gewisse zwecke sinnvoll sein (so die erwaehnte sortierbarkeit).
aber wieso sollte man ploetzlich nicht mehr sagen "1.januar 2222"???
schade, dass die deutsche sprache immer mehr verkommt und es keinen interessiert (weil wohl keiner mehr richtig deutsch kann).
das fuehrt dann dazu, dass es leute gibt, die den plural im deutschen mit 's schreiben.
auto's.
mein gott.
[/ot]
edit: klar: das date feld in der db ist logischerweise in dieser form; die ausgabe dagegen muss nicht so erfolgen.

[ Diese Nachricht wurde geändert von: slackerbitch am 2002-09-07 15:39 ]
von c3o
Um das ganze noch etwas zu verkompilizieren:
Ich würd das Datum lassen wie's ist. YYYY-MM-DD HH:MM ist keineswegs ein "Amiformat", sondern ein international, unter anderem auch nach DIN, festgelegtes einheitliches Datumsformat, zu dem die ganze Welt endlich übergehen sollte.
Oder könnt ihr mir sagen, welches Datum 01/02/03 bezeichnet? Das neue ist weltweit verständlich, Computersortierbar, logisch (Jeweils größere Einheit zuerst, wie's bei der Zeit schon immer gemacht wurde) und einfach eine Gute Sache, und daher sollte die Welt schön langsam daran gewöhnt werden (*Forum lob*)

[ Diese Nachricht wurde geändert von: c3o am 2002-09-07 09:00 ]
von slackerbitch
da gibts ja nun viele moeglichkeiten.
wie sind denn die daten abgelegt? - das muesste man schon wissen.

als beispielscripte kannst du dir z.b. einfach irgendwelche einfachen gb-scripte anschauen. oder du konkretisierst das problem ;)
von dee123
Hallo,
Ich möchte das Datumsformat in der Form ausgeben:
"Name schrieb am 05.09.2002, 20:10..."
Dabei ist es mir eigentlich egal, ob die Daten direkt in der Datenbank im richtigen Format vorliegen, oder per PHP im Nachhinein vormatiert werden.
Gibt es irgendwo eigentlich gute Beispielskripte ?
Danke wiedermal
von stalkerX
verstehe ich nicht ganz: willst du das datum ausgeben oder formatieren?


---
.: Web 2.0 Entwickler & seine Notizen :.
von dee123
Hallo,
Ich bin absoluter Anfänger. . .
Ich hätte auch noch eine Frage: Wie kriege ich das denn mit dem Datumsformat in einer Select-Anweisung
Select(name, datum, kommentar) FROM DB ORDER BY 'datum'
Ausgabe erfolgt über "rows[0]"......
wobei ich ja innerhalb der Klammer hinter der Variable "datum" kaum mit 'date_format' arbeiten kann, oder ?
Danke schonmal
von stalkerX
immer wieder gern


---
.: Web 2.0 Entwickler & seine Notizen :.
von Burner

stalkerX schrieb am 2002-07-02 13:00 :
der text muss entweder bevor oder auch danach formatiert werden: nl2br($text);



Und nochmal Vielen Vielen Dank Dank deiner Hilfe habe ich mein Gästebuch nun fertig. Naja Design noch ändern, aber dann .

Greets Burner
von stalkerX
der text muss entweder bevor oder auch danach formatiert werden: nl2br($text);


---
.: Web 2.0 Entwickler & seine Notizen :.
von Burner
Hello again ,

jetzt hab ich das Gästebuch soweit fertig und wollte nun das Design noch ein wenig anpassen und plötzlich viel mir noch ein großer fehler auf. Sobald jemand mehrere Zeilen in das Eingabefeld eingibt werden diese in der Ausgabe später nicht untereinander angezeigt sonder alles schön in einer Zeile. Kann mir da einer helfen, wie ich Zeilenumbrüche für diese Textfelder einbaue, ich hab schon alles versucht, aber es will einfach nicht .

Greets Burner
von Burner
OK habs einfacher lösen können .

Habe einfach in der Ausgabeseite folgende Anweisung gegeben:

echo '<a href="mailto:'.$row[email].'">'.$row[email].'</a>';

Aber Thanks to all.

Greets Burner
von Elliot
Ich weiss nicht, obich es 100% richtig verstehe aber:

SELECT email

...

$row = mysql_fetch_array ($result);

echo "<a href=mailto:$row[email]><img src=bild.gif border=0></a>";

...

das wär eigentlich.

Gruß, Elliot

von Burner
Wo wir schon dabei sind hätte ich gerade noch eine Frage .
Ich habe in meinem Gästebuch auch ein Feld in dem der Benutzer seine e-Mail-Adresse eingibt. Wie kann ich dieses Feld nun aus der Datenbank so auslesen das man auch eine e-Mail versenden kann wenn man auf die Adresse klickt? Wobei ich es noch lieber hätte, wenn die e-Mail adresse mit einem anklickbaren Symbol verbunden wäre.

Greets Burner
von stalkerX
eben


---
.: Web 2.0 Entwickler & seine Notizen :.
von Elliot
Ganz einfach:

Ich brauche Datumsausdrücke meistens öfters und in verschiedenen Formaten. Dann brauche ich es nur einmal auszulesen und kann es dementsprechend umformen. Ansonsten müsste ich in der SELECT-Anweisung immer alle Angaben machen, wie ich es haben möchte.
Das finde ich zumindestens umständlicher. Aber jeder wird seine eigene Möglichkeit, wie er es machen möchte, selber finden. Es werden schließlich hier nur mehrere Möglichkeiten aufgezählt.
von stalkerX
ich verstehe eins nicht, leutz: warum macht ihr die ganze sache so umständlich - zuerst auslesen und dann noch umwandeln?

das datum lässt sich doch gleich beim auslesen formatieren [siehe oben] - aber jedem das seine...
vielleicht ist genau hier die definitionsgrenze zwischen anfänger und fortgeschrittener?


---
.: Web 2.0 Entwickler & seine Notizen :.
von Elliot
Hallo!

Um mich auch noch kurz in die Diskussion einzumischen, würde ich das Datum als timestamp(14) speichern.

Auslesen als SELECT UNIX_TIMESTAMP(datum) as datum

und dann

umformen mit:

...

date("H:i",$row[datum]);

Damit hätte man dann beides vereint.

Gruß, Elliot
von stalkerX
sowas würde ich nicht mal meinen feinden empfehlen, crusher [mal nachzählen wieviele es sind]

warum? na weil du keine datensätze mit dieser schreibweise und dieser methode zum ordentlichen sortieren bringst [und nach datum und nach time]. es sei denn, man will die einträge nicht ordnen, was ich bei einem gästebuch nicht besonders glaube...


---
.: Web 2.0 Entwickler & seine Notizen :.
von [SpecFor]crusher
ja nun also ich würde Zeit und Datum in 2felder schreiben...
is echt praktischer...
also
$time=date("G:i")
und
$date=date("j m Y")


und dann die daten einspeisen
von stalkerX
er meinte bestimmt z.B. nach datum sortieren...


---
.: Web 2.0 Entwickler & seine Notizen :.
von Burner
Was heißt den mit dem Datum rechnen? Was bringt mir das in meinem Gästebuch? sorry bin noch Anfänger in dem Gebiet PHP/MySQL?

Greets Burner
von Manticor
Coole Lösung. Muss ich mir merken, kannte ich noch nicht, die Möglichkeit...


---
von stalkerX
es wurde nicht gefragt welche nachteile es mit sich bring

wirklich am coolsten und bequemsten, am schnellsten und elegantesten wäre natürlich folgendes:
- datumsfeld in der mysql als timestamp(14) einstellen
- und arbeit der db überlassen: SELECT DATE_FORMAT(datum,'%d.%m.%Y') AS datum FROM db WHERE blabla

keep it simple!


---
.: Web 2.0 Entwickler & seine Notizen :.
von Manticor
Nchteil der Sache ist, dass Du niemals mit dem Datum in MySQL rechnen kannst. Wenn das nicht nötig ist: kein Problem. Wenn nicht, einfach vor der Ausgabe das Datum mit:

$dat=split("-",$amidatum);
$datum=$dat[2].".".$dat[1].".".$dat[0];
echo $datum;

Wobei $amidatum das Datum ist, welches MySQL liefert. $dat[] ist nur ein Zwischenarray und $datum ein String mit dem deutschen Datum.


---
von stalkerX
gern geschehen


---
.: Web 2.0 Entwickler & seine Notizen :.
von Burner
Hallo stalkerX,

vielen Dank. Jetzt hats funktioniert. Klasse. Danke für die schnelle Hilfe.

Greets Burner
von stalkerX
feldtyp ändern: anstatt von datetime mach char() - dann soll's gehen


---
.: Web 2.0 Entwickler & seine Notizen :.
von Burner
Hi stalkerX,

nach eingabe aller Daten in das Gästebuchforumlar und klick auf den Submit Button, werden alle Daten an ein Script zum eintragen in die Datenbank weitergegeben. Dieses Script liest zu beginn das Datum und die Zeit des Servers aus.

$serverZeit=date("d.m.y H:m");

Weiter im Script werden die Daten dann an die DB weitergegeben.
$sql="INSERT INTO guestbook (datum, name, email, message)
VALUES ('$serverZeit', '$name', '$email', '$message');";


Dieses Script wird auch am Bildschirm angezeigt. Sprich es wird das angezeigt was der jeweilige User eingegeben hat. Und da stimmt alles. Datum wird folgendermaßen angezeigt 30.06.2002 und die Zeit 16:00.

Wenn ich dann in die Komplette ansicht wechsel, also alle einträge anschaue, wird das Datum wieder 2002-06-30 und die Zeit 16:00:00 angezeigt.
Unter phpMyAdmin steht im Datumsfeld unter Typ Datetime.

Ich hoffe du kannst den Fehler daraus erkennen.

Danke schon mal
Greets Burner


[ Diese Nachricht wurde geändert von: Burner am 2002-06-30 16:32 ]

[ Diese Nachricht wurde ge&auml;ndert von: Burner am 2002-06-30 16:33 ]
von stalkerX
wie speicherst du denn das datum in der db? als timestamp? oder anders gefragt: in welchem format liegt das datum in der db?


---
.: Web 2.0 Entwickler & seine Notizen :.
von Burner
Hallo zusammen,

ich bastle gerade ein Gästebuch. Das Script funktioniert auch schon soweit. Ich speichere die Einträge in einer SQL Datenbank. Nun meine Frage. Zur Zeit wird das Datum folgendermaßen ausgegeben:

Name schrieb am 2002-06-29 18:22:07

Nun möchte ich aber das das Datum in etwa so dargestellt wird:

Name schrieb am 29.06.02 um 18:22 Uhr

Kann mir da einer weiterhelfen??

Danke schon mal im voraus.

Greets Burner


Nach oben