将Datetime转换为string时出错,类DateTime的Object无法转换为字符串。

时间:2016-07-20 16:02:10

标签: php datetime

第18行的代码错误是由于将datetime转换为字符串而我在没有(字符串)的情况下尝试了它,并且虽然在其他页面上有效但仍有相同的问题

<?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"];
}}
?>

2 个答案:

答案 0 :(得分:0)

此连接字符串中有$eDate

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

$eDateDateTime个对象。当您使用.将其加入字符串时,PHP会尝试将其转换为字符串,当您收到错误时,您会看到该字符串。要解决此错误,请移除$eDate或将其转换为包含date_format的字符串。

我不确定你希望它看起来如何,所以我无法建议一种解决方法,但其他(string)结果上的date_format强制转换不是必要的。

答案 1 :(得分:0)

请改为尝试:

date_format($ sDate,“H:i”) - &gt;格式('H:i')