gpt4 book ai didi

javascript - NaN 倒计时器 JavaScript

转载 作者:行者123 更新时间:2023-12-01 00:16:18 24 4
gpt4 key购买 nike

我为 WordPress 自定义插件创建了一个 JavaScript 倒计时。我读过this article这是我第一次尝试做类似的东西。在我写完代码后,我对其进行了测试,最初它运行良好。现在,如果我尝试在控制台中记录小时、分钟、天和秒的值,我会收到一条 NaN 消息。我不知道出了什么问题,有人可以帮助我吗?

<?php if( get_option('show-countdown') ): ?>
<div class="countdown">
<h1 class="days d-inline"></h1>
<h1 class="hours d-inline"></h1>
<h1 class="minutes d-inline"></h1>
<h1 class="seconds d-inline"></h1>
</div>

<script>
(function($){
$(document).ready(function(){

var date = '<?php echo get_option('countdown-timer'); ?>';
console.log(date);
function remainingTime( date ){
var countdown = Date.parse(date) - Date.parse(new Date());
var seconds = Math.floor( (countdown/1000) % 60 );
var minutes = Math.floor( (countdown/1000/60) % 60 );
var hours = Math.floor( (countdown/(1000*60*60)) % 24 );
var days = Math.floor( countdown/(1000*60*60*24) );
return {
'total': countdown,
'd': days,
'h': hours,
'm': minutes,
's': seconds
};
}

console.log(remainingTime(date));

function initClock( endtime ){
var timeinterval = setInterval(function(){
var t = remainingTime( endtime );

$('.days').html(t.d);
$('.hours').html(t.h);
$('.minutes').html(t.m);
$('.seconds').html(t.s);
}, 1000);
}
initClock( '.countdown', date );

});
}(jQuery));
</script>
<?php endif; ?>
</div>

最佳答案

问题在于您向 initClock 传递了两个参数,但方法签名只接受一个 (endTime)。通过删除第一个参数(它似乎是未使用的 CSS 选择器字符串),问题得到解决:

(function($) {
$(document).ready(function() {

var date = '2030-01-01';
console.log(date);

function remainingTime(date) {
var countdown = Date.parse(date) - Date.parse(new Date());
var seconds = Math.floor((countdown / 1000) % 60);
var minutes = Math.floor((countdown / 1000 / 60) % 60);
var hours = Math.floor((countdown / (1000 * 60 * 60)) % 24);
var days = Math.floor(countdown / (1000 * 60 * 60 * 24));
return {
'total': countdown,
'd': days,
'h': hours,
'm': minutes,
's': seconds
};
}

console.log(remainingTime(date));

function initClock(endtime) {
var timeinterval = setInterval(function() {
var t = remainingTime(endtime);

$('.days').html(t.d);
$('.hours').html(t.h);
$('.minutes').html(t.m);
$('.seconds').html(t.s);
}, 1000);
}

initClock(date);
});
}(jQuery));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="countdown">
<h1 class="days d-inline"></h1>
<h1 class="hours d-inline"></h1>
<h1 class="minutes d-inline"></h1>
<h1 class="seconds d-inline"></h1>
</div>

注意:由于这主要与 JavaScript 有关,因此我删除了 PHP 条件并硬编码了一个日期值来代替 get_option 调用。

关于javascript - NaN 倒计时器 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59738619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com