私はjsfiddleの例に従って、javascriptで時間を作成しようとしています:
明らかに、jsfiddle のタイマーは正常に動作します。しかし、私が抱えている問題は、タイマーが開始する時間が、db から時間を取得する mysqli/php 変数に来ることです。
したがって、次を除きます。
<span id="countdown">01:30:10</span>
私はそれを次のようにする必要があります:
echo "<p><span id='countdown'>" . $dbSessionDuration . "</span></p>";
と
を除いて:
var time = "01:30:10",
私はそれを次のようにする必要があります:
var time = <?php echo json_encode($dbSessionDuration); ?>,
現在、エラーは発生していませんが、タイマーがカウントダウンを行っていないことが原因です。私の質問は、なぜカウントダウンしないのですか? 変数からの時間の例は、01:00:00
.
以下は、関数のコードです。
echo "<p><span id='countdown'>" . $dbSessionDuration . "</span></p>";
...
<script type="text/javascript">
(function(){
$(document).ready(function() {
var time = <?php echo json_encode($dbSessionDuration); ?>,
parts = time.split(':'),
hours = +parts[0],
minutes = +parts[1],
seconds = +parts[2],
span = $('#countdown');
function correctNum(num) {
return (num<10)? ("0"+num):num;
}
var timer = setInterval(function(){
seconds--;
if(seconds == -1) {
seconds = 59;
minutes--;
if(minutes == -1) {
minutes = 59;
hours--;
if(hours==-1) {
alert("timer finished");
clearInterval(timer);
return;
}
}
}
span.text(correctNum(hours) + ":" + correctNum(minutes) + ":" + correctNum(seconds));
}, 1000);
});
});
</script>