我正试图制作一个if语句来比较两个时间/日期,看看第二个日期是否比输入的第一个日期晚了24小时。如果是,则不应允许该语句继续
$date在代码中设置得更早,并且是用户输入的日期。
$now = new DateTime();
$future_date = new DateTime($date);
$interval = $future_date->diff($now);
//echo $interval->format("%d days, %h hours, %i minutes, %s seconds");
if ($interval > 60 * 60 * 24) {
这是我试图用来比较给定日期是否相同的代码,但老实说,我真的不知道如何开始。
if ($interval > 60 * 60 * 24) {
编辑:我真的不知道它是否真的有效,因为不管怎样,它都会出现一页空白。
$BookID = $_GET['BookID'];
$id = $_GET['id'];
$query = mysqli_query($con,"SELECT time, date FROM tbl_booking WHERE BookID={$BookID} && tbl_mem_id={$id}");
$info = mysqli_fetch_assoc( $query);
$test = $info['date'] . $info['time'];
$date = date("Y-m-d H:i:s", strtotime($test));
$plus24hours = new DateTime("+1 day");
$future_date = new DateTime($date);
if (isset($_SESSION['id']) && $_SESSION['id'] == $_GET['id']) {
if (isset($_GET['BookID']) && is_numeric($_GET['BookID']))
{
if ($future_date > $plus24hours) {
header("refresh:5;url=dashboard.php");
echo "Your booking has been cancelled.";
$sql = "DELETE FROM `tbl_booking` WHERE `BookID`={$BookID}";
$result = mysqli_query($con, $sql);
}}
} else {
// if id isn't set, or isn't valid, redirect back to view page
header("refresh:5;url=dashboard.php");
echo ("Sorry, there is less than 24 hours left and you cannot cancel.");
}
这比你想象的要容易。只需将第一个日期加上24小时,然后将其与未来日期进行比较。如果未来日期小于第一个日期,则未来日期小于24小时。
$plus24hours = new DateTime("+1 day");
$future_date = new DateTime($date);
if ($future_date < $plus24hours) {
// Less than 24 hours in the future
}
您可以通过将两个DateTime
对象转换为时间戳来获得以秒为单位的差异。$diffInSeconds = $future_date->getTimestamp() - $now->getTimestamp();
如果此操作只需要DateTime
对象,那么使用strtotime
可能会更好。