2017-01-24 6 views
-2

Ich versuche, den Datum/Uhrzeit-Wert von MySQL in ein Formular mit PHP zu verwenden. Ich habe verschiedene Möglichkeiten ausprobiert, um den Wert aus den Beispielen, die ich online gefunden habe, in das richtige Format zu konvertieren (einfache oder doppelte Anführungszeichen usw.). Aber fortfahren, die Fehlermeldung mit Variationen dieses Codes zu erhalten.HTML5-Datentyp-lokale Eingabe Formatierungsfehler: "Literal nicht erfüllt lokale Datum-Uhrzeit-Format" mit Wert von Mysql

<input type="datetime-local" value="<?php echo "$formatStartDate"; ?>" name="$reminder_start_datetime"> 

Ich habe versucht, den Wert direkt von MySQL verwenden und Formatierung es auch so:

$formatStartDate = DateTime::createFromFormat('YYYY-MM-DDThh:mm', $reminder_start_datetime); 

Aber es funktioniert nicht.

Ich muss die Zeichenfolge in $ reminder_start_datetime für eine HTML5 Datetime-local-Eingabe gültig formatieren.

+0

Hallo! Wie bekommen Sie die Daten aus der Datenbank? Dadurch wird bestimmt, in welchem ​​Format sich das DB-Datum befindet, wenn Sie es erhalten. Wenn es eine Zeichenkette ist (oft der Fall), sollte 'strtotime' in der Lage sein, es zu einem PHP-Datum zu machen. – MacPrawn

+0

Dies ist nicht genug von Ihrem Code, um etwas anderes als ein Problem vor dieser Codezeile zu sehen. – RiggsFolly

+0

Stellen Sie sich vor, Sie lesen diese Frage zum ersten Mal wie wir sind! Könnten Sie genau herausfinden, was falsch sein könnte? – RiggsFolly

Antwort

0

Ändern Sie diese

input type="datetime-local" value="<?php echo "$formatStartDate"; ?>" name="$reminder_start_datetime"> 

dieser

input type="text" value="<?php echo $formatStartDate; ?>" name="$reminder_start_datetime"> 

Das wird der Fehler loszuwerden.

Wenn Sie sich mit datetime-local bestehen, dann nicht DateTime::createFromFormat verwenden, diese stattdessen tun:

// tested with this value and it works 
// $reminder_start_datetime = "2005-1-1 12:00 AM"; 
$formatStartDateStamp = strtotime($reminder_start_datetime); 
$formatStartDate = strftime("%Y-%m-%dT%H:%m:%S", $formatStartDateStamp); 
+0

Hinweis Ich hatte die Format-Zeichenfolge falsch. Es sollte Sekunden lang ein großes S gewesen sein. Es wurde korrigiert. "% Y-% m-% dT% H:% m:% S" –

+0

kopiert und könnte den Fehler mit dieser Eingabe erhalten: –

+0

> "name =" $ reminder_start_datetime "> –

Verwandte Themen