Datum parsen
Paul
- php
0 wahsaga0 Thomas Luethi0 heiko0 Paul
Hallo,
ich war gestern schon einmal hier im Forum, danke noch einmal an den Leuten die mir so super geholfen haben.
Ich habe jedoch noch eine Frage und zwar habe ich ein Datum welches ich über eine Variable aus einem Textfeld bekomme welches so aussieht:
15.01.2004
um es nun auf den Timestamp zusetzen benutze ich mktime() nur da sieht die Formatierung ganz anders aus.
mktime(0,0,0,01,15,2004);
Gibt es eine einfache Lösung um mit date() das Datum andrs zu formatieren ich habe da schon einiges ausprobiert aber es kam immer was falsches raus. Mir fällt nun auch nichts mehr dazu ein wie man es ganz einfachlösen könnte. Ein andere Lösung wäre den string umzuparsen und dann in mktime die entsprechenden Variablen einzusetzen. Das würde auch gehen aber vielleicht gibt es doch noch eine einfachere Lösung? Vielleicht kann mir einen Tipp geben wie es sich einfach lösen läßt?
Gruß Paul
hi,
15.01.2004
um es nun auf den Timestamp zusetzen benutze ich mktime() nur da sieht die Formatierung ganz anders aus.
mktime(0,0,0,01,15,2004);
mktime() _ist_ keine formatierung, mktime() erzeugt einen unix-timestamp.
Gibt es eine einfache Lösung um mit date() das Datum andrs zu formatieren ich habe da schon einiges ausprobiert aber es kam immer was falsches raus.
date() kannst du benutzen, um aus einem unix-timestamp wieder ein für menschen lesbares datum zu machen. dens formatierungsmöglichkeiten sind dabei kaum grenzen gesetzt, genaueres verrät dir das manual zu date().
gruss,
wahsaga
mktime() _ist_ keine formatierung, mktime() erzeugt einen unix-timestamp.
Gibt es eine einfache Lösung um mit date() das Datum andrs zu formatieren ich habe da schon einiges ausprobiert aber es kam immer was falsches raus.
ja ich muß von einem bestimmten Datum also hier im Beispiel vom 15.01.2004 ein Unix Timestamp erzeugen! Es könnte dort auch der 17.01.2004 etc stehen.
ich bekomme aus meiner Variable meines Formulares folgende Foramtierung 15.01.2004 die ich irgendwie zum Unixtimestamp umwandeln muß nur bei mktime() sieht die formatierung anders aus.
Wenn ich per Hand das Datum vom 15.01.2004 eintrage muß es so aussehen mktime(0,0,0,01,15,2004); Nur aus meinem Formular bekomme ich eine andere Formatierung, muß ich die umparsen und geht das auch einfacher?
Gruß Paul
das hört sich nach deinem fall an!
http://www.dynamic-webpages.de/php/function.strtotime.php
Hallo,
das hört sich nach deinem fall an!
http://www.dynamic-webpages.de/php/function.strtotime.php
Bitte lies </faq/#Q-19> und wende es an. Danke.
=> http://www.dynamic-webpages.de/php/function.strtotime.php
strtotime() hilft ihm hier aber nicht weiter,
weil es bei einem Datum xx.yy.zzzz davon ausgeht,
dass xx der Monat ist und yy der Tag ("amerikanisch").
Wie gesagt kann er ein "deutsches" Datum in der Form
"15.01.2004" _nicht_ direkt in einen Timestamp umwandeln,
sondern er muss den String "auseinandernehmen".
Eine Moeglichkeit ist explode(), es gibt auch weitere.
Beispiele finden sich in den Benutzerkommentaren
in den Manual-Seiten zu den einzelnen Datums- und
Zeit-Funktionen.
http://www.php.net/manual/de/ref.datetime.php
Gruesse,
Thomas
Hallo,
das hört sich nach deinem fall an!
http://www.dynamic-webpages.de/php/function.strtotime.phpBitte lies </faq/#Q-19> und wende es an. Danke.
=> http://www.dynamic-webpages.de/php/function.strtotime.phpstrtotime() hilft ihm hier aber nicht weiter,
weil es bei einem Datum xx.yy.zzzz davon ausgeht,
dass xx der Monat ist und yy der Tag ("amerikanisch").Wie gesagt kann er ein "deutsches" Datum in der Form
"15.01.2004" _nicht_ direkt in einen Timestamp umwandeln,
sondern er muss den String "auseinandernehmen".
Eine Moeglichkeit ist explode(), es gibt auch weitere.
Beispiele finden sich in den Benutzerkommentaren
in den Manual-Seiten zu den einzelnen Datums- und
Zeit-Funktionen.
http://www.php.net/manual/de/ref.datetime.phpGruesse,
Ok ich habe es verstanden eine einfache Möglichkeit gibt es nicht also muß man immer parsen.
Bei diversen Versuchen auch mit strtotime kam was falsches raus.
echo "<br>strtotime: ". strtotime("15.01.2004");
Ausgabe: -1
Damit hat sich meine Frage auch schon beantwortet!
Gruß Paul
hi,
Damit hat sich meine Frage auch schon beantwortet!
dann brauchst du ja jetzt nur noch zitieren lernen :-)
dein fullquote war nämlich mehr als überflüssig.
</faq/#Q-09a>
http://learn.to/quote
gruss,
wahsaga
Hallo,
ich war gestern schon einmal hier im Forum, danke noch einmal an den Leuten die mir so super geholfen haben.
Du haettest ruhig im alten Thread bleiben koennen.
[pref:t=68306&m=391653]
Schliesslich geht es immer noch den gleichen Themenkreis,
und diese Folgefrage grenzt an ein Doppelposting. </faq/#Q-06c>
Ich habe jedoch noch eine Frage und zwar habe ich ein Datum welches ich über eine Variable aus einem Textfeld bekomme welches so aussieht:
15.01.2004
um es nun auf den Timestamp zusetzen benutze ich mktime() nur da sieht die Formatierung ganz anders aus.
mktime(0,0,0,01,15,2004);
Das ist das Geschenk der Amerikaner ;-)
Weder mktime() noch strtotime() fressen unser
europaeisches Datum bwz. die Reihenfolge
Tag - Monat - Jahr in Zahlen.
Du koenntest
Pruefen, ob die Werte OK sind, solltest Du ja sowieso...
Gruesse,
Thomas
mir ist nicht klar was du eigentlich erreichen willst?
du kannst mit date(); das datum doch in tausend beliebigen formaten ausgeben...
http://www.dynamic-webpages.de/php/function.date.php
mir ist nicht klar was du eigentlich erreichen willst?
du kannst mit date(); das datum doch in tausend beliebigen formaten ausgeben...
http://www.dynamic-webpages.de/php/function.date.php
Mit Date geht das nicht dann bekomme ich das Datum von 1970
Ich brauche den Timestamp um damit rechnen zu können.
wenn ich die passenden variablen für mktime(0,0,0,01,15,2004)
aus dem 15.01.2004 erzeugen will und es mit date mache funktioniert es nicht
$eingabe = date("H.m.s.i.d.Y", $var_datum_von);
Ausgabe:
eingabe: 00.01.10.00.01.1970
Wenn nun dort das richtige rauskommen würde dann würde ich einfach
$zeit_zukunft = mktime($eingabe); erzeugen