首页 > 解决方案 > 显示是否比当前时间早 30 分钟

问题描述

我需要一个注册按钮在会议开始前 30 分钟消失。我的会议日期存储在一个字段中,开始时间在另一个字段中。日期的条件代码工作正常,但不能与时间代码结合使用。我有以下代码,但是它不能正常工作。

<?php
    if ($meetings->getColumnVal("meeting_date") >= date('Y-m-d')) {
        if (date("h:i") > date("h:i", strtotime('-30 minutes', $meetings->getColumnVal("start_time")))) { ?>
            <br><a href="register.php?meetingID=<?php echo($meetings->getColumnVal("theID")); ?>" title="register">Register to Attend</a>
        <?php }
    }
?>

标签: phpdatetimeconditional-statements

解决方案


if(time() <= strtotime("-30 minutes", strtotime( $meetings->getColumnVal("meeting_date")." ".$meetings->getColumnVal("start_time")  ))){
// time is less than 30 minutes ago from meeting start_time
}
  1. 连接$meetings->getColumnVal("meeting_date")$meetings->getColumnVal("start_time")
  2. 为连接的日期字符串生成 Unix 时间strtotime()
  3. 从 unix 时间中减去 30 分钟,用整数减去-1800or,strtotime("-30 minutes", $unix_time)
  4. 比较新的 Unix 时间和当前时间time()

您还需要检查的另一件事是您的 PHP 时区和 MySQL 时区是否相同。


推荐阅读