我计算了几天的时间,并将其存储在数据库中以供进一步使用。这是我想编码的预订表格,我制作了一个类似的简单表格,用于测试天数是否会存储在数据库中,但我得到的只是这个错误。。
可捕获的致命错误: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也会出错!