检查两个日期之间的差异



我正试图制作一个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可能会更好。

相关内容

  • 没有找到相关文章

最新更新