Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst PHP strtotime ändert einen String komischerweise in das aktuelle Datum..aber warum.

Mitglied: FunkerVogt

FunkerVogt (Level 1) - Jetzt verbinden

02.09.2013 um 19:19 Uhr, 2038 Aufrufe, 2 Kommentare

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 ; ;


01.
 
02.
<?
03.
$row = 1;
04.
if (($handle = fopen("orig2.csv", "r")) !== FALSE) {
05.
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
06.
        $row++;
07.
		$date = $data[0];
08.
                $time = $data[1];
09.
                $count = $data[2];
10.
echo $date;
11.
echo "<br /></p>\n";
12.
$myDate = date("Y-m-d", strtotime($data[0])); 
13.
echo $myDate;
14.
echo $time;
15.
echo $count;
16.
echo "<br /></p>\n";
17.
 
18.
?> 
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!
Mitglied: colinardo
02.09.2013, aktualisiert 03.09.2013
Hallo FunkerVogt,
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[0]), 'Y-m-d');

Grüße Uwe
Bitte warten ..
Mitglied: FunkerVogt
03.09.2013 um 15:21 Uhr
Alles klärchen... jetzt passt das!
Gleich mit Datenbank getestet!


01.
if (($handle = fopen("orig2.csv", "r")) !== FALSE) {
02.
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
03.
        $row++;
04.
			$date = $data[0];
05.
				$curday = explode(".", $date); // getrennt per explode in $currday-Array
06.
					$curday[2]=substr($curday[2], 0, -2); //Leerzeichen abgetrennt
07.
					$upday = "20".$curday[2]."-".$curday[1]."-".$curday[0];
08.
echo " per explode getrennt und neu zusammengesetzt:____" .$upday;
09.
$myDate = date("Y-m-d", strtotime($upday)); 
10.
echo "<br />";
11.
echo " per strtotime in MySQL-taugliches Format gebracht:  " .$myDate;
12.
echo "<br /></p>\n";
13.
$time = $data[1];
14.
$count = $data[2];
15.
 
16.
echo $time;
17.
echo "<br />";
18.
echo $count;
19.
echo "<br />";
20.
 
21.
 
22.
 

Dankeeeee!!


Gruss

Uwe
Bitte warten ..
Ähnliche Inhalte
PHP
PHP String inhalte wiedergeben
gelöst Frage von DasPossumPHP7 Kommentare

Hallo zusammen, ich arbeite gerade an ein kleines Script das mir Linuxbenutzer auf den Webserver ausgeben soll. Bisher habe ...

PHP
PHP - String aufbrechen und speichern
gelöst Frage von WPFORGEPHP3 Kommentare

Hallo, ich habe viele Strings, die nach folgendem Muster aufgebaut sind: $str = "topCat/subcat/subsubCat//endpoint"; Die "Tiefe" dieser Schachtelung ist ...

PHP
PHP String mit Links versehen
gelöst Frage von Jens4everPHP6 Kommentare

Hi zusammen, zuerst mal frohes Fest euch allen! Aus einem String extrahiere ich Hashtags und schreibe sie in eine ...

PHP

PHP Variable in String finden und ersetzen

Frage von LorderichPHP19 Kommentare

Hallo zusammen, da eval() sowohl aus Sicherheitsgründen als auch aus Performancegründen keine Option zu sein scheint, würde ich gern ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 8 StundenHumor (lol)2 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 1 TagErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 4 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 4 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
SSD zeigt falsche Werte
Frage von karl2014Festplatten, SSD, Raid24 Kommentare

Ich habe ein Problem mit der SSD in meinem Laptop mit Windows 10. Es ist eine 1Tb Platte die ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware23 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server20 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Ubuntu
Installation freerdp 2.0.0-rc4
Frage von kristovUbuntu20 Kommentare

Hallo, möchte freerdp 2.0.0-rc4 auf linux mint 18.3 installieren, habe aber keine Ahnung, wie das funktioniert. freerdp 1.1 ist ...