You are not logged in.

  • Login

1

Tuesday, February 23rd 2010, 2:23pm

Datumsstring in Timestamp konvertieren

Ich stehe gerade irgendwie voll auf dem Schlauch und sehe den Wald vor lauter Brettern nicht mehr ;)

Wien kann ich einen Datumsstring, den ich aus einer externen Quelle erhalte, in einen Timestamp konvertieren?

Beispieldatum inkl. Uhrzeit:

Source code

1
2010-02-20T20:44:00+00:00


Danke für euren Input!

Lg,
Philipp

2

Tuesday, February 23rd 2010, 2:34pm

Quoted


Wenn du ein Datum hast und dieses in den UNIX-Timestamp umwandeln willst, gibt es auch dafür einen Befehl:
<?php
$timestamp = mktime(14,34,0,2,23,2010);
?>
Durch mktime wird diese Funktion aufgerufen und das Ergebnis wird in der Variable timestamp gespeichert. Die Werte in Klammer ergeben sich von links nach rechts durch Stunde, Minute, Sekunde, Monat, Tag, Jahr. Der Wert oben entspricht also dem 23.2.2010 um 14:34:00 Uhr.


Damit solltes gehen^^

3

Tuesday, February 23rd 2010, 6:44pm

Ja, mktime ist mir durchaus auch bekannt...ich suche einen direkten Weg, ohne den String mit einem regulären Ausdruck auseinanderzufriemeln...

4

Tuesday, February 23rd 2010, 7:21pm

ich würde mal versuchen ob strtotime() das datum so erkennt (http://de2.php.net/manual/de/function.strtotime.php)
oder halt einen format-string zusammenbasteln und dann strptime verwenden (http://de2.php.net/manual/de/function.strptime.php)

oder aber du arbeitest mit der DateTime-Klasse(http://de2.php.net/manual/de/class.datetime.php), die sollte das auch beherrschen (und das wäre wohl auch das sauberste). dein datum sieht dabei nach ISO8601 aus, wenn ich mich nicht täusche

5

Thursday, February 25th 2010, 12:53pm

Bevor ich Deinen Beitrag gesehen habe, habe ich mir mit folgendem regulären Ausdrück geholfen - nur falls mal jemand danach sucht. Aber danke für den Input, Rondrer, ich schau mir das mal an.

PHP Quellcode

1
preg_match_all("/([0-9]{4})\-([0-9]{2})\-([0-9]{2})\T([0-9]{2})\:([0-9]{2})\:([0-9]{2})\+([0-9]{2})\:([0-9]{2})/", (string)$date, $date_array);

6

Thursday, February 25th 2010, 8:12pm

Ohne es getestet zu haben
Aber das sollte es sein, was du brauchst.
Brauchsd dir nur noch eine nette Schleife drumrumlegen :)

PHP Quellcode

1
2
3
4
5
6
7
8
9
$string = "2010-02-20T20:44:00+00:00";
 
$temp = explode("T",$string);
$temp2 = explode("+",$temp[1]);
 
$date = explode("-",$temp[0]);
$time = explode(":",$temp2[0]);
 
$timestamp = mktime($time[0],$time[1],$time[2],$date[1],$date[2],$date[0]);

Similar threads

Social bookmarks