我在MYSQL数据库中有开始时间和结束时间。它是一种日期类型。如何在数据库中说明的时间内显示我的DIV?任何提示?
以下是数据库中存储开始时间和结束时间的方法。
2013-12-10 01:40:00 | 2013-12-10 13:40:00
答案 0 :(得分:0)
你有一个id为div1
的div。您在CSS中设置了visibility:hidden
或display: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>';
}