我在MYSQL數據庫中有開始時間和結束時間。這是一種日期型的類型。如何在數據庫中陳述的時間內顯示我的DIV?任何提示?在一定的時間內顯示DIV
下面是如何將開始時間和結束時間存儲在數據庫中。
2013-12-10 01:40:00 | 2013-12-10 13:40:00
我在MYSQL數據庫中有開始時間和結束時間。這是一種日期型的類型。如何在數據庫中陳述的時間內顯示我的DIV?任何提示?在一定的時間內顯示DIV
下面是如何將開始時間和結束時間存儲在數據庫中。
2013-12-10 01:40:00 | 2013-12-10 13:40:00
您有一個ID爲div1
的div。您在您的CSS中設置其visibility:hidden
或display:none
。你包含jQuery庫(因爲我給你的示例代碼將使用它),最好在<head>
。
在你的PHP中,首先你必須從數據庫中查詢時間。 然後,您必須使用JavaScript功能進行計時。如果您打發時間的參數,它必須以毫秒爲單位,這裏是完整的「手冊」:manual
它將會像
$(document).ready(function(){
setTimeout(function(){$('#div1').show();},3000);
});
3000指3000毫秒。
運行mysql查詢,獲取結果,如果時間mathces列。示例查詢:
SELECT * FROM table WHERE CURTIME() BETWEEN starttime AND endtime
如果查詢返回true,那麼您可以顯示div。如果錯誤,當前時間不在該範圍內。
$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>';
}
您需要將當前時間與數據庫中的時間進行比較。 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
}
注意,在我的例子中,我手動定義$時間。對於動態頁面,您可以使用以下命令以Unix時間戳形式獲取當前時間。
$time = time();
PHP也有一個datetime類將做同樣的事情(http://www.php.net/manual/en/class.datetime.php)。
也許是這樣的:
<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)你可能會尋找一個JavaScript解決方案
SELECT * FROM myTable WHERE startDate <= Now() AND endDate >= Now();
if ($rowCount > 0) {
echo '<div></div>';
}
代替。 'setTimeout()'會有所幫助。 –
@castis我曾嘗試使用if..else,但半途而廢。 – user3103739
向我們展示您嘗試使用的代碼。 – castis