2016-07-20 2 views
0

Dieser Codefehler auf der Leitung 18 aufgrund Datetime in eine Zeichenfolge zu konvertieren ich es ohne die (string) versucht und hatte das gleiche Problem, obwohl es auf einer anderen SeiteFehler Konvertieren von Datetime in Zeichenfolge, Objekt der Klasse DateTime konnte nicht in Zeichenfolge konvertiert werden.

<?php 
$con = mysqli_connect("localhost","workAcc","storm111274","work"); 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
echo "Tell Bertie or who ever does IT"; 
} 
$sqlSelect = "SELECT * FROM downstairs WHERE ID = ".htmlspecialchars($_GET["ID"]) .";"; 
$result = mysqli_query($con, $sqlSelect); 
if (mysqli_num_rows($result) > 1){ 
echo "error too many rows this really really shouldn't happen"; 
}elseif(mysqli_num_rows($result) === 0){ 
echo "No record found"; 
}else{ 
while ($row = mysqli_fetch_assoc($result)) { 
$sDate = date_create($row["StartTime"]); 
$eDate = date_create($row["EndTime"]); 
echo $row["ID"] . "_" . $row["Course"] . "_" . (string)date_format($sDate, "H:i") . "_" . (string)date_format($eDate, "H:i") . "_" . $eDate . "_" . $row["Room"] . "_" . $row["Instructor"]; 
}} 
?> 
+0

Was das Format '$ row ist [ "Starttime"]' und '$ row [" EndTime "]' – RiggsFolly

+0

Sie müssen nicht in '(string)' umwandeln, da das Ergebnis dieser Funktion eine Zeichenkette ist – RiggsFolly

+0

Welcher Datentyp ist StartTime und EndTime in Ihrer Datenbank? – RiggsFolly

Antwort

0

Es tat Arbeit ist ein $eDate in dieser verketteten Zeichenfolge :

echo $row["ID"] . "_" . $row["Course"] . "_" . (string)date_format($sDate, "H:i") . "_" 
    . (string)date_format($eDate, "H:i") . "_" . $eDate // <<<< Here 
    . "_" . $row["Room"] . "_" . $row["Instructor"]; 

$eDate ist ein DateTime Objekt. Wenn Sie es mit . zu der Zeichenfolge verbinden, versucht PHP, es in eine Zeichenfolge zu konvertieren, und das ist, wenn Sie den Fehler erhalten, den Sie sehen. Um den Fehler zu beheben, entfernen Sie entweder die $eDate oder konvertieren Sie sie in eine Zeichenfolge mit date_format.

Ich bin nicht sicher, wie Sie es aussehen wollen, so kann ich nicht vorschlagen, einen Weg, es zu beheben, aber die (string) wirft auf die anderen date_format Ergebnisse sind nicht notwendig.

+0

Es war ursprünglich nur $ eDate und das funktionierte für eine Seite, aber auf dieser eine fehlgeschlagen –

0

Versuchen Sie stattdessen:

date_format ($ sDate, "H: i") -> Format ('H: i')

+0

Ich habe versucht, aber habe diesen Fehler [Thu Jul 21 08: 04: 33.662289 2016] [: Fehler] [Pid 14050] [Client 164.39.153.200:65193] PHP Fataler Fehler: Uncaught Error: Aufruf einer Memberfunktion format() on string in getData.php: 18 \ nStack-Trace: \ n # 0 {main} \ n in getData.php in Zeile 18 geworfen , Referer: http: //xxxx.xx/work/insert.php –