可捕获的致命错误:类DateInterval的对象无法在C:examplephtdocs esting.ph


Catchable fatal error: Object of class DateInterval could not be converted to string in C:xampphtdocs esting.php on line 30

我计算了几天的时间,并将其存储在数据库中以供进一步使用。这是我想编码的预订表格,我制作了一个类似的简单表格,用于测试天数是否会存储在数据库中,但我得到的只是这个错误。。

可捕获的致命错误:DateInterval类的对象无法在C:''examplep''htdocs''testing.php的第30行转换为字符串

我只是个初学者。我已经在其他网站上检查过了,但没有什么能解决我的问题。我将非常感谢您的帮助。非常感谢。

<?php
$localhost = "127.0.0.1";
$username = "root";
$password = "";
$dbase="testing";
$conn = new mysqli($localhost, $username, $password, $dbase);
//check connection
if ($conn->connect_errno) {
	die('Sorry we are having a problem.');
}
if($_SERVER["REQUEST_METHOD"] == "POST") 
{
$dateOfReserv = $_POST['dateOfReserv'];
$dateUntil 	= $_POST['dateUntil'];
	$date1=date_create($dateOfReserv);
	$date2=date_create($dateUntil);
	$diff=date_diff($date1,$date2);
	$diff->format("%days");
		$sql="INSERT INTO `tbldate` (datestart, dateend, spanofdate) 
			VALUES ('$dateOfReserv', '$dateUntil', '$diff')";
		
		if ($conn->query($sql) === TRUE) {
    	echo "New record created successfully";
		} 
		else {
    	echo "Error: " . $sql . "<br>" . $conn->error;
		}	
		$conn->close();
			
		exit();

}
?>
<!DOCTYPE html>
<head>
<title>testing for inserting date in xampp server</title>
</head>
<body>
<form method="POST">
<ul>
	<li>
			<label for='dateOfReserv'>Date of Reservation<span>*</span></label><br />
			<input type='date' id='dateOfReserv' name='dateOfReserv' placeholder='Date of Reservation' size='40' />
	</li>
	<li>
			<label for='dateUntil'>Until?*</label><br />
			<input type='date' id='dateUntil' name='dateUntil' placeholder='End Date of Reservation' size='40' />
	</li>
	<li>
			<input type='submit' name='submitbtn' value='Send Date' />
	</li>
</ul>
</form>
</body>
</html>

您想要:

$diff = $diff->d;

代替:

$diff->format("%days");

还要注意,您的代码容易受到SQL注入的攻击,如果日期没有格式化,那么date_create/date_diff也会出错!