string formatieren
Roger
- php
moin!
ich habe in einer datenbank ein zeitstempel stehen, den ich umwandeln möchte. ich möchte aus 20060202 (in db) ein 2006-02-02 machen.
in php gibt's doch da bestimmt ein zauberwort? :) (sprintf()?)
gruß.
roger.
Hallo,
in php gibt's doch da bestimmt ein zauberwort? :) (sprintf()?)
Das Zauberwort könnte "db_date2my_date()" heißen und lässt sich bequem als eigene kleine Funktion realisieren.
Tipp: nicht immer so faul sein.
LG
Chris
moin!
ich hätte jetzt mit substr() losgefrickelt. wollte nur mal ein paar andere meinungen hören und mich belehren lassen.
hätte ja sein können, dass es da was simples gibt und ich nicht drauf komme...
gruß.
roger.
Hallo Roger,
wollte nur mal ein paar andere meinungen hören und mich belehren lassen.
Sorry, wenn das hier immer so rüberkommt.
Wenn Du MySQL benutzt, dann schau doch auch mal unter "date_format"
http://dev.mysql.com/doc/refman/4.0/de/date-and-time-functions.html
LG
Chris
moin!
der string kommt aus ner dbase db. also sind die mittel da recht bescheiden. und da 20060202 nun mal imho kein gültiges datumsformat ist (dazu fehlen ja die bindestriche, die ich dazwischen bekommen möchte) kann ich mir auch nicht vorstellen, das mittels date, bzw mkdate umzuwandeln. mit nem unixtimestamp sähe das schon anders aus...
und strtotime braucht auch "was gültiges". :)
gruß.
roger.
Hallo,
der string kommt aus ner dbase db.
Ist die Mutter aller PC-Datenbanken mit Plan ;-))
Und die Leute von Ahton Tate und später von Borland waren nicht doof!
also sind die mittel da recht bescheiden. und da 20060202 nun mal imho kein gültiges datumsformat ist
Veto: Bitte Fragesteller tauschen *grins*
Das ist gültige und übliche ANSI-Notation für ein Datum
(dazu fehlen ja die bindestriche, die ich dazwischen bekommen möchte) kann ich mir auch nicht vorstellen, das mittels date, bzw mkdate umzuwandeln. mit nem unixtimestamp sähe das schon anders aus...
Das ost allerdigns richtig, denn diese Funktionen beziehen sich auf spezielle Unix-Formate.
Du müsstest also für "ansi2mydate()" eigene Regeln schaffen.
substr() wird Dein Freund sein
http://de3.php.net/substr
LG
Chris
moin!
substr() war bereits mein freund. deswegen ja der anfangspost. substr() sieht einfach zu umständlich aus.
$datum = substr($zeile[4],0,4)."-".substr($zeile[4],4,2)."-".substr($zeile[4],6,2);
gruß.
roger.
Hallo Roger,
substr() war bereits mein freund. deswegen ja der anfangspost. substr() sieht einfach zu umständlich aus.
das liegt nun aber an PHP.
Du könntest aber auch nochmal bei den pack-Funktionen schauen...
http://de3.php.net/manual/de/function.pack.php
http://de3.php.net/manual/de/function.unpack.php
Variante Records (Pascal) sind mir auch viel lieber, als dieder ganze Oberhead.
LG
Chris
Hallo,
in php gibt's doch da bestimmt ein zauberwort? :) (sprintf()?)
Das Zauberwort könnte "db_date2my_date()" heißen und lässt sich bequem als eigene kleine Funktion realisieren.
ich würde mich auch eher Vicent's Antwort anschließen... lass alles was geht doch die Datenbank machen :)
Tipp: nicht immer so faul sein.
LG
Chris
Gruß, der Hilker
Hallo,
ich würde mich auch eher Vicent's Antwort anschließen... lass alles was geht doch die Datenbank machen :)
Nichts dagegen einzuwenden.
Nur dafür muss man wissen, welche Datenbank benutzt wird.
"20060202" für den 02. Februar 2006 ist aber ein geeignetes Austauschformat (ANSI-Date) und daher könnte man die Leistung auch ins PHP legen. Man weiß schließlich bisher nicht, welche DBMS der OP alles (gleichzeitig) benutzt und da ist ANSI-Date eine geeignete Schnittstelle.
LG
Chris
Hallo,
ich würde mich auch eher Vicent's Antwort anschließen... lass alles was geht doch die Datenbank machen :)
Nichts dagegen einzuwenden.
Nur dafür muss man wissen, welche Datenbank benutzt wird.
stimmt wohl, ich muß aber manchmal einfach meinen Senf dazugeben :) Wobei ich i.d.R. halt viele Aufgaben bei der Datenbank belasse, da die halt in den meisten fällen recht gut mit Daten arbeiten kann :)
Das Ganze ist eher als genereller Tip an den OP zu sehen.
"20060202" für den 02. Februar 2006 ist aber ein geeignetes Austauschformat (ANSI-Date) und daher könnte man die Leistung auch ins PHP legen. Man weiß schließlich bisher nicht, welche DBMS der OP alles (gleichzeitig) benutzt und da ist ANSI-Date eine geeignete Schnittstelle.
LG
Chris
Gruß, der Hilker
P.S. schon 'ne mail wegen dem Newsletter Teil?
Das man eine Adresse hinterlassen soll, hatte ich ja beim ersten lesen völlig übersehen. *pein* Ich selbst komme ja auch ursprünglich aus der Baubranche daher würde mich das natürlich Interessieren :)
Hallo,
stimmt wohl, ich muß aber manchmal einfach meinen Senf dazugeben :) Wobei ich i.d.R. halt viele Aufgaben bei der Datenbank belasse, da die halt in den meisten fällen recht gut mit Daten arbeiten kann :)
Das Ganze ist eher als genereller Tip an den OP zu sehen.
Das ist aber nicht ganz korrekt.
Generelle Tipps sollten auch zu generellen oder zumindest statistisch vorwiegend gültigen Lösungen führen.
Unter diesem Aspekt hate ich "ANSI-Date" als passendes Übergabeformat angenommen. Das können nämlich die meisten Systemen liefern und edie meisten Systeme übernehmen.
Folglich würde die Aufgabe der Umwandlung in ein privates Format immer beim übernehmenden System liegen. Damit wäre die Lösung am wenigstens Service-anfällig.
Lernt man solche Überlegeungen heute überhaupt noch? ;-)
LG
Chris
Hallo,
Moinsen :)
Das ist aber nicht ganz korrekt.
Generelle Tipps sollten auch zu generellen oder zumindest statistisch vorwiegend gültigen Lösungen führen.
Unter diesem Aspekt hate ich "ANSI-Date" als passendes Übergabeformat angenommen. Das können nämlich die meisten Systemen liefern und edie meisten Systeme übernehmen.Folglich würde die Aufgabe der Umwandlung in ein privates Format immer beim übernehmenden System liegen. Damit wäre die Lösung am wenigstens Service-anfällig.
Lernt man solche Überlegeungen heute überhaupt noch? ;-)
Ja, OK - Du hast mich ja überredet, und je länger ich drüber nachdenke, desto mehr hätte ich mir das Posting sparen können! :)
Über das P.S. sprichste nicht wie :) OK, ist ja auch verständlich!
LG
Chris
Gruß, der Hilker
Hallo Hilker,
nke, desto mehr hätte ich mir das Posting sparen können! :)
Über das P.S. sprichste nicht wie :) OK, ist ja auch verständlich!
Sorry, nein. Da ist noch nichts gekommen.
Zur Not ruhig nochmal senden, aber bitte nur mit deutschen Betreff.
Ich bin leider selber heute ab ca. 24:00 Uhr off.
Ich habe heute erfahren, dass meine spanische Feuerversicherung mein kleines Häuschen in Tarifa nun doch wieder aufbauen lässt *freu*. Die Kumpels dort haben schon angefangen. Nun werde ich die nächsten acht Wochen bestimmt keinen vernünfigen DSL-Anschluss haben und auch keine Zeit. Aber Horst und Tom sind sowieso die besseren Web-Programmierer und haben sowas auch schon öfter gemacht. Ich sehe sie nun leider aber nicht mehr rechtzeitig.
LG
Chris
Hallo Roger,
ich habe in einer datenbank ein zeitstempel stehen, den ich umwandeln möchte. ich möchte aus 20060202 (in db) ein 2006-02-02 machen.
Vielleicht bietet Dein Datenbankmanagementsystem (DBMS) bereits eine entsprechende Funktion. Befrage dessen Handbuch.
Falls nicht, befrage das PHP-Handbuch. Falls Du das auch nicht willst, könntest Du dem Tipp von Chris folgen ;-)
Freundliche Grüße
Vinzenz
Hi Roger,
ich habe in einer datenbank ein zeitstempel stehen, den ich umwandeln möchte. ich möchte aus 20060202 (in db) ein 2006-02-02 machen.
in php gibt's doch da bestimmt ein zauberwort? :) (sprintf()?)
sprintf() wäre ja auch mit substr().
Ich mach sowas immer mit einer regexp: ([0-9]{4})([0-9]{2})([0-9]{2})
Wie das von der Performance her ist, weiß ich auch nicht.
Viele Grüße aus Freiburg,
Marian