在一定时间内显示DIV

时间:2013-12-16 18:31:45

标签: php html mysql

我在MYSQL数据库中有开始时间和结束时间。它是一种日期类型。如何在数据库中说明的时间内显示我的DIV?任何提示?

以下是数据库中存储开始时间和结束时间的方法。

2013-12-10 01:40:00 | 2013-12-10 13:40:00

4 个答案:

答案 0 :(得分:0)

你有一个id为div1的div。您在CSS中设置了visibility:hiddendisplay:none。你包含了jQuery库(因为我给你的示例代码将使用它),最好是<head>

在PHP中,首先必须从数据库中查询时间。 然后,您必须使用JavaScript setTimeout()函数进行计时。如果您传递时间参数,则必须以毫秒为单位,这是完整的“手册”:manual

这将是

$(document).ready(function(){ 
setTimeout(function(){$('#div1').show();},3000); 
});

3000表示3000毫秒。

答案 1 :(得分:0)

运行mysql查询,如果时间与列匹配,则会获得结果。示例查询:

SELECT * FROM table WHERE CURTIME() BETWEEN starttime AND endtime

如果查询返回true,则可以显示div。如果为false,则当前时间不在该范围内。

$q= "SELECT * FROM table WHERE CURTIME() BETWEEN starttime AND endtime;";

$run = // run query here

if ($run) {
    echo '<div>Welcome to my page!</div>'
}
else {
    echo '<div>Access denied!</div>';
}

答案 2 :(得分:0)

您需要将当前时间与数据库中的时间进行比较。 PHP提供了几种不同的方法来完成此任务。例如,您可以使用strtotime(http://php.net/strtotime):

/**
 *  Convert times to unix timestamp
 */
$time = strtotime('2013-12-10 10:40:00');
$start = strtotime('2013-12-10 01:40:00');
$end = strtotime('2013-12-10 13:40:00');

if ( $time >= $start && $time <= $end ) {
    /**
     *  We are between the two times, so display the div.
     */
    ?>
    <div>Blah blah blah</div>
    <?php
}

请注意,在我的示例中,我手动定义$ time。对于动态页面,您将使用以下内容以Unix时间戳形式获取当前时间。

$time = time();

PHP还有一个日期时间类,它将执行相同的操作(http://www.php.net/manual/en/class.datetime.php)。

答案 3 :(得分:0)

也许是这样的:

<script language="javascript">   
    // get time diff in milliseconds between server endDate
    // and the client-side browser's time
    var timeDiff = new Date() - <?php echo $myDBEndDate ?>;

    // hide in X amount of milliseconds
    if (timeDiff > 0) { // check if positive (in future) number
        setTimeOut(function() {
            $('#myDiv').hide();
        },timeDiff);
    } else 
        $('#myDiv').hide();
    }
</script>

或者只是在PHP和MySQL中(但只有在重新加载页面时才隐藏DIV,而不是实时)

SELECT * FROM myTable WHERE startDate <= Now() AND endDate >= Now();

if ($rowCount > 0) {
    echo '<div></div>';
}