2013-12-16 66 views
1

我在MYSQL數據庫中有開始時間和結束時間。這是一種日期型的類型。如何在數據庫中陳述的時間內顯示我的DIV?任何提示?在一定的時間內顯示DIV

下面是如何將開始時間和結束時間存儲在數據庫中。

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

代替。 'setTimeout()'會有所幫助。 –

+0

@castis我曾嘗試使用if..else,但半途而廢。 – user3103739

+0

向我們展示您嘗試使用的代碼。 – castis

回答

0

您有一個ID爲div1的div。您在您的CSS中設置其visibility:hiddendisplay:none。你包含jQuery庫(因爲我給你的示例代碼將使用它),最好在<head>

在你的PHP中,首先你必須從數據庫中查詢時間。 然後,您必須使用JavaScript功能進行計時。如果您打發時間的參數,它必須以毫秒爲單位,這裏是完整的「手冊」:manual

它將會像

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

3000指3000毫秒。

0

運行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>'; 
} 
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 
} 

注意,在我的例子中,我手動定義$時間。對於動態頁面,您可以使用以下命令以Unix時間戳形式獲取當前時間。

$time = time(); 

PHP也有一個datetime類將做同樣的事情(http://www.php.net/manual/en/class.datetime.php)。

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)你可能會尋找一個JavaScript解決方案

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

if ($rowCount > 0) { 
    echo '<div></div>'; 
} 
相關問題