如何计算两个时间点之间的小时数


How to Calculate the Number of Hours Between Two Points in Time?

我正在使用下面的代码向我的用户显示广告。一旦任何用户点击了一个添加,它就不应该在24小时内出现在同一用户面前。

$sql2=$Db1->query("SELECT * FROM ads2 WHERE active='1' ORDER BY RAND()");
while($temp=$Db1->fetch_array($sql2)) {
    $sql=$Db1->query("SELECT * FROM ads2_log WHERE user='$username' AND target='{
         $temp['target']}' AND shorten='{$temp['shorten']}' ORDER BY fecha DESC");
    $row=$Db1->fetch_array($sql);
    $showads = true;
    if( $row['fecha'] != "" ){
        $hourdiff = round(($row['fecha'] - time())/3600, 1);
        //echo "Last click: ".date("Y/m/d H:i:s", $row['fecha'])." - ".$hourdiff;
        if( $hourdiff < 24 ) { $showads = false; }
    }
    if( $showads == true )
    {

但在我的情况下,它对我不起作用。

假设fecha引用的数据库列包含以下形式的DATETIME字符序列(MySQL使用(:YYYY-MM-DD hh:mm:ss。在这种情况下,您可以通过以下方式计算当前时间与数据库中存储的时间之间的时间差:

$hourdiff = round( (time()-strtotime($row['fecha']))/3600, 1);

PHP time()函数返回自Unix epoch(January 1 1970 00:00:00 UTC(开始以来的毫秒数,因此需要使用strtotime将数据库中的日期字符串转换为毫秒数。之后,您就可以计算差值了。