2012-03-26 18 views
0

Mögliche Duplizieren:
How to convert yyyy-MM-dd HH:mm:ss to “15th Apr 2010” using PHPWie konvertiert man JJJJ-TT-MM hh: mm: ss zu JJJJ-MM-TT hh: mm: ss?

Ich habe an eine Bank verbunden, dass sie mir einen Bericht in YYYY-DD-MM hh gibt: mm: ss-Format, aber ich brauche, um dieses Format JJJJ-MM-TT hh: mm: ss in db speichern, was kann ich jetzt in PHP tun?

+2

Welche Bank stellt Daten als YYYY-DD-MM dar? Ich habe dieses Format noch nie zuvor gesehen - und da es mit dem ISO 8601-Format nicht eindeutig ist, erscheint es mir als * sehr * schlechte Idee. –

+0

libertyreserve.com, wie kann ich zu ISO 8601 berichten –

+0

Ich habe keine Ahnung, wie Sie die Bank bekommen Sie YYYY-MM-DD. Sie könnten in Erwägung ziehen, sie zu kontaktieren. Konvertieren von JJJJ-TT-MM nach JJJJ-MM-TT ist einfach genug, aber Sie können nicht zuverlässig sagen, welche Sie an erster Stelle haben. –

Antwort

4

Eine Möglichkeit ist es, die Klasse Datetime zu verwenden:

<?php 
$date = \DateTime::createFromFormat('Y-d-m H:i:s', $yourDateString); 

if (! $date) { 
    throw new \InvalidArgumentException(sprintf("'%s' is not a valid date.", $yourDateString)); 
} 

echo $date->format('Y-m-d H:i:s'); 
?> 
+2

Beachten Sie, dass die Formatwerte folgendermaßen lauten sollten: 'Ydm H: i: s' und 'Ymd H: i: s' entsprechend – poncha

+0

es gibt einen Fehler zurück: Aufruf eines Memberfunktionsformats() für ein Nichtobjekt in C: \ xampp \ htdocs \ heartortailcasino.com \ test.php in Zeile 5 –

+0

das ist, weil entweder das Format falsch ist, oder die Eingabe falsch war und das Objekt nicht erstellt wurde ... DateTime :: createFromFormat gibt ein DateTime-Objekt bei Erfolg oder falsch ein Fehler – poncha

-3

noch eine weitere Möglichkeit: Sie einen regulären Ausdruck ersetzen können:

$out = preg_replace("/^([0-9]{4})-([0-9]{2})-([0-9]{2})/", "$1-$3-$2", $in); 
+2

Ich habe nicht -1, weil es funktioniert. Obwohl er das tun konnte, heißt das nicht, dass er sollte. – Josh

+0

Die Down-Stimmen sind wahrscheinlich, weil Ihr Code die Daten auf keinen Fall validiert. Im Gegensatz dazu funktioniert die andere Antwort nur mit gültigen Daten und ist lesbarer (da es explizit vor und nach dem Format zeigt) – Guvante

+0

dieser Code funktioniert gut, ich habe gewählt +1 –

-2
<?php 
    $date = date("Y-m-d H:m:s"); 
    $query = "INSERT into table_name ('date') VALUES ('$date')"; 
    $result = mysql_query($query); 
?> 

in Ihrer Datenbank stellen Sie sicher, was Sie brauchen Um den Typ des Datums in diesem Format festzulegen, versuchen Sie TIMESTAMP

+0

Unter anderem ist das kein gültiges Datumsformat für PHP. [Überprüfen Sie es selbst] (http://codepad.org/NAEHzrsR), es ist urkomisch: '2012201220122012-MonMon-MarMar 1111: 0303: 5959' Die andere Antwort machte den gleichen Fehler. –

+0

Ja, ich weiß, weil das Y allein das ganze Jahr bedeutet, php.net/date, was ich versuche, ist nur mit der Frage verbunden, die Person, die die Frage stellt, betont einfach das YYYY-DD und so weiter Mr. Alles wissen. – SuperNoob

+0

auch ich bearbeite es bereits für Sie Mr. Know It All, und oh, auch danke für das Sagen, es ist urkomisch, ich kenne Ihren Veteran hier, aber vielleicht weiß ich auch, dass das nicht der richtige Weg ist, Rat Mr. Know It All vielleicht zu geben Sie sollten Ihren Namen Madmartigan zu Mr. Know It All ändern und einige Noobs auswählen. – SuperNoob

Verwandte Themen