このJavaScriptの時間計算に問題があり、時間が1時間に達すると00:00:00に戻り、再びカウントアップします。たとえ私が自分のhtmlでそれをハードコードしたとしても、00時に戻るだけです。お願い助けて!ここで時間が00hの後に来ると時間が0に戻ります59m:59s
は、コードは次のとおりです。
$('.countup').each(function() {
var targetdate = $(this).children("#targetdate").html();
//var seconds_left = new Date(targetdate).getTime();
var seconds_left = new Date(targetdate).getTime();
var timer = $(this).children('#timer');
var count = $(this);
var hoursv = '',
minsv = '',
secsv = '';
var hours, minutes, seconds;
seconds_left = seconds_left/1000;
var countdownrefesh = setInterval(function() {
// Add one to seconds
seconds_left = seconds_left + 1;
// do some time calculations
days = parseInt(seconds_left/86400);
seconds_left = seconds_left % 86400;
hours = parseInt(seconds_left/3600);
seconds_left = seconds_left % 3600;
minutes = parseInt(seconds_left/60);
seconds = parseInt(seconds_left % 60);
if (hours < 10) {
hoursv = "0" + hours;
} else {
hoursv = hours;
}
if (minutes < 10) {
minsv = "0" + minutes;
} else {
minsv = minutes;
}
if (seconds < 10) {
secsv = "0" + seconds;
} else {
secsv = seconds;
}
// format countdown string + set tag value
s = hours + minutes + seconds;
t = hoursv + " h :" + minsv + " h :" + secsv + " s";
timer.html(t)
if (minutes > 10 && minutes <= 15 && hours >= 0) {
count.attr('style', 'background-color: orange');
} else if (minutes > 15 && hours >= 0) {
count.attr('style', 'background-color: red');
} else {
count.attr('style', 'background-color: green');
}
}, 1000);
});
<div class="countup">
<div id="targetdate" style="display: none">Thu Jan 01 1970 01:31:51 +0000</div>
<span id="timer"></span>
</div>
<div class="countup">
<div id="targetdate" style="display: none">Thu Jan 01 1970 00:59:49 +0000</div>
<span id="timer"></span>
</div>
<div class="countup">
<div id="targetdate" style="display: none">Thu Jan 01 1970 00:10:58 +0000</div>
<span id="timer"></span>
</div>
<div class="countup">
<div id="targetdate" style="display: none">Thu Jan 01 1970 00:05:58 +0000</div>
<span id="timer"></span>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
あなたは無効であると同じIDを持つ複数の要素を持っています。それを修正することから始めます。また、Dateコンストラクタで文字列を解析しないでください。関数を書くか、ライブラリを使用する。 – RobG
分割の結果で 'parseInt()'を呼び出すのはなぜですか?これは文字列ではなく数値を返します。 'Math.floor()'を使用して整数部分を取得します。 – Barmar