我有一個倒數的JS代碼。我希望它從數據庫中獲得價值,並從該價值中進行倒計時。因此,如果數據庫中的值是8,則應該從8小時開始倒計時。我怎樣才能做到這一點?如何讓這個JS倒計時代碼依賴DB值?
代碼:
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";
$con = new mysqli($servername, $username, $password, $dbname);
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
}
else{
$sql = "SELECT roundstime FROM vf_Discussion";
$roundstime = $con->query($sql);
var_dump($roundstime);
echo 'successful';
}
mysqli_close($con);
?>
<input type="hidden" id="set-time" value="<?php echo htmlspecialchars($roundstime); ?>"/>
<div id="countdown">
<div id='tiles' class="color-full"></div>
<div class="countdown-label">Time Remaining</div>
</div>
<style>
.countdown-label {
font: thin 15px Arial, sans-serif;
color: #65584c;
text-align: center;
text-transform: uppercase;
display: inline-block;
letter-spacing: 2px;
margin-top: 9px
}
#countdown{
box-shadow: 0 1px 2px 0 rgba(1, 1, 1, 0.4);
width: 240px;
height: 96px;
text-align: center;
background: #f1f1f1;
border-radius: 5px;
margin: auto;
}
#countdown #tiles{
color: #fff;
position: relative;
z-index: 1;
text-shadow: 1px 1px 0px #ccc;
display: inline-block;
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
border-radius: 5px 5px 0 0;
font-size: 48px;
font-weight: thin;
display: block;
}
.color-full {
background: #53bb74;
}
.color-half {
background: #ebc85d;
}
.color-empty {
background: #e5554e;
}
#countdown #tiles > span{
width: 70px;
max-width: 70px;
padding: 18px 0;
position: relative;
}
#countdown .labels{
width: 100%;
height: 25px;
text-align: center;
position: absolute;
bottom: 8px;
}
#countdown .labels li{
width: 102px;
font: bold 15px 'Droid Sans', Arial, sans-serif;
color: #f47321;
text-shadow: 1px 1px 0px #000;
text-align: center;
text-transform: uppercase;
display: inline-block;
}
</style>
<script>
var minutes = $('#set-time').val();
var target_date = new Date().getTime() + ((minutes * 60) * 1000); // set the countdown date
var time_limit = ((minutes * 60) * 1000);
//set actual timer
setTimeout(
function()
{
alert('done');
}, time_limit);
var days, hours, minutes, seconds; // variables for time units
var countdown = document.getElementById("tiles"); // get tag element
getCountdown();
setInterval(function() { getCountdown(); }, 1000);
function getCountdown(){
// find the amount of "seconds" between now and target
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date)/1000;
if (seconds_left >= 0) {
console.log(time_limit);
if ((seconds_left * 1000) < (time_limit/2)) {
$('#tiles').removeClass('color-full');
$('#tiles').addClass('color-half');
}
if ((seconds_left * 1000) < (time_limit/4)) {
$('#tiles').removeClass('color-half');
$('#tiles').addClass('color-empty');
}
days = pad(parseInt(seconds_left/86400));
seconds_left = seconds_left % 86400;
hours = pad(parseInt(seconds_left/3600));
seconds_left = seconds_left % 3600;
minutes = pad(parseInt(seconds_left/60));
seconds = pad(parseInt(seconds_left % 60));
// format countdown string + set tag value
countdown.innerHTML = "<span>" + hours + ":</span><span>" + minutes + ":</span><span>" + seconds + "</span>";
}
}
function pad(n) {
return (n < 10 ? '0' : '') + n;
}
</script>
<h2 class="CommentHeading"><?php echo Plural(count($Sender->Data('Answers')), 'Rounds', 'Rounds'); ?></h2>
<ul class="MessageList DataList AcceptedAnswers">
Protip:向下滾動以在下面查看更多代碼'?>' – gsc
您能否清理與該問題相關的代碼?例如。刪除所有的CSS並正確分割代碼,分離JS/PHP?也歡迎來到Stackoverflow。請閱讀[如何提問](https://stackoverflow.com/help/how-to-ask) – Nukeface