PHP strtotime ändert einen String komischerweise in das aktuelle Datum..aber warum.
Hallo Gemeinde,
wie schon in der "Schlagzeile beschrieben habe ich da ein klitzekleines Problem.
Ich lese eine CSV mit 3 Spalten (Datum, Uhrzeit und einem Wert) ein um diese
dann in eine MySQL Datenbank zu portieren.
Bekanntlich muss dazu das Datumsformat geändert werden, nur "wie beschrieben"
tut es das nicht.
Die Zeilen in der CSV Datei haben das Format:
01.09.13 ;00:30 ; 0,000;C ; ;
Natürlich sind das Zwischenausgaben um das Ergebnis zu vergleichen.
Die Ausgabe ist:
01.09.13
2013-09-0200:30 0,000
aber warum? Ich finde den Fehler nicht!
Vielen Dank im voraus!
wie schon in der "Schlagzeile beschrieben habe ich da ein klitzekleines Problem.
Ich lese eine CSV mit 3 Spalten (Datum, Uhrzeit und einem Wert) ein um diese
dann in eine MySQL Datenbank zu portieren.
Bekanntlich muss dazu das Datumsformat geändert werden, nur "wie beschrieben"
tut es das nicht.
Die Zeilen in der CSV Datei haben das Format:
01.09.13 ;00:30 ; 0,000;C ; ;
<?
$row = 1;
if (($handle = fopen("orig2.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$row++;
$date = $data;
$time = $data[1];
$count = $data[2];
echo $date;
echo "<br /></p>\n";
$myDate = date("Y-m-d", strtotime($data));
echo $myDate;
echo $time;
echo $count;
echo "<br /></p>\n";
?>
Natürlich sind das Zwischenausgaben um das Ergebnis zu vergleichen.
Die Ausgabe ist:
01.09.13
2013-09-0200:30 0,000
aber warum? Ich finde den Fehler nicht!
Vielen Dank im voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 215876
Url: https://administrator.de/contentid/215876
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo FunkerVogt,
dein Problem liegt in der Funktion
Du musst deinen Datums-String zerlegen und z.B. in diesem Format an die Funktion übergeben
oder du nutzt diese Funktion: http://php.net/manual/en/datetime.createfromformat.php
Grüße Uwe
dein Problem liegt in der Funktion
strtotime()
die nur englisch formatierte Date-Strings akzeptiert. Da dein Datum deutsch formatiert ist, liefert es anstatt eines Fehlers das aktuelle Datum zurück!Du musst deinen Datums-String zerlegen und z.B. in diesem Format an die Funktion übergeben
yyyy/mm/dd
oder du nutzt diese Funktion: http://php.net/manual/en/datetime.createfromformat.php
$mydate = date_format(date_create_from_format('d.m.y',$data), 'Y-m-d');
Grüße Uwe