【发布时间】:2018-07-26 18:24:51
【问题描述】:
<?php
function find_days($start_date, $end_date) {
$response = new stdClass();
try {
$sdate = new DateTime($start_date);
$edate = new DateTime($end_date);
$dateInterval = $edate->diff($sdate);
$response->status = true;
$response->result = $dateInterval;
return $response;
} catch (Exception $e) {
$response->status = false;
$response->result = 'Invalid Date Format';
return $response;
}
}
?>
Start Date: <input type="date" name="sdate" placeholder="start date" />
End Date: <input type="date" name="edate" placeholder="end date" />
<input type="submit" value="Find Days" />
<?php
if (isset($_POST['sdate']) && $_POST['sdate']) {
$start_date = $_POST['sdate'];
$end_date = $_POST['edate'];
//now call the function
$days_array = find_days($start_date, $end_date);
if ($days_array->status) {
echo " <input type='text' name='day'
value='.$days_array>result>days.' />";
$day = $_POST['day'];
$query = "INSERT into cart (date,edate,days)
VALUES('$start_date','$end_date','$day')";
$success = $conn->query($query);
if (!$success) {
die("Couldn't enter data: ".$conn->error);
}
} else {
echo $days_array->result;
}
}
我的代码运行良好。但结果只显示在屏幕上。 因此,我尝试通过将结果放在文本框中来存储结果,然后以通常的方式插入到表格中。但我收到一个错误“Catchable fatal error: Object of class DateInterval could not be convert to string in C:\xampp\htdocs\date.php on line 45” 我不知道如何纠正这个问题..请帮我解决这个问题。
【问题讨论】:
-
警告:尽可能使用prepared statements来避免在查询中注入任意数据并创建SQL injection bugs。在
mysqli和PDO 中执行这些操作非常简单,其中任何用户提供的数据都使用?或:name指示符指定,稍后使用bind_param或execute填充,具体取决于您是哪个使用。 -
您需要将日期表示为ISO-8601 格式化字符串,而不是任意插值的PHP 对象:
YYYY-MM-DD HH:MM:SS。
标签: php mysql date-difference