412 Stimmen

PHP date()-Format beim Einfügen in datetime in MySQL

Welches ist das richtige Format für die Übergabe an die date() Funktion in PHP, wenn ich das Ergebnis in eine MySQL-Datei einfügen möchte datetime Typ-Spalte?

Ich habe versucht date('Y-M-D G:i:s') aber das fügt jedes Mal nur "0000-00-00 00:00:00" ein.

838voto

Mark Elliot Punkte 71774

Das Problem ist, dass Sie 'M' y 'D' die eine textuelle Repräsentation sind, erwartet MySQL eine numerische Repräsentation des Formats 2010-02-06 19:30:13

Versuchen Sie es: date('Y-m-d H:i:s') der die numerischen Äquivalente verwendet.

edit: umgeschaltet G à H Auch wenn es keine Auswirkungen hat, sollten Sie wahrscheinlich das 24-Stunden-Format mit führenden 0en verwenden.

128voto

Tim Lytle Punkte 17229

Aus den Kommentaren von php's date() Handbuchseite :

<?php $mysqltime = date ('Y-m-d H:i:s', $phptime); ?>

Sie haben das "Y" richtig geschrieben - das ist ein ganzes Jahr, aber "M" ist ein Monat mit drei Buchstaben, während "m" ein zweistelliger Monat ist. Dasselbe gilt für "D" anstelle von "d". G" ist eine ein- oder zweistellige Stunde, während "H" immer eine führende 0 hat, wenn sie gebraucht wird.

44voto

JAL Punkte 20777

Hier ist eine alternative Lösung: Wenn Sie das Datum in PHP als Zeitstempel haben, umgehen Sie die Bearbeitung mit PHP und überlassen Sie der DB die Umwandlung, indem Sie die FROM_UNIXTIME Funktion.

mysql> insert into a_table values(FROM_UNIXTIME(1231634282));
Query OK, 1 row affected (0.00 sec)

mysql> select * from a_table;

+---------------------+
| a_date              |
+---------------------+
| 2009-01-10 18:38:02 |
+---------------------+

33voto

Steffan Punkte 506

Ich verwende den folgenden PHP-Code, um eine Variable zu erstellen, die ich in eine MySQL DATETIME-Spalte einfüge.

$datetime = date_create()->format('Y-m-d H:i:s');

Hier werden das aktuelle Datum und die Uhrzeit des Servers gespeichert.

16voto

Ali Umair Punkte 651
$date_old = '23-5-2016 23:15:23'; 
//Date for database
$date_for_database = date ('Y-m-d H:i:s'", strtotime($date_old));

//Format should be like 'Y-m-d H:i:s'`enter code here`

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X