Javascript 更新对象分配的日期变量
这是一个计数计时器,从页面加载时开始计时,我要创建一个名为resetcountupDate()的函数,通过使变量countupDate等于当前日期(使用date()或其他方法)将其设置回零,我希望第四行到最后一行的按钮执行该函数,我下面的代码在重置计时器方面不起作用Javascript 更新对象分配的日期变量,javascript,html,global,Javascript,Html,Global,这是一个计数计时器,从页面加载时开始计时,我要创建一个名为resetcountupDate()的函数,通过使变量countupDate等于当前日期(使用date()或其他方法)将其设置回零,我希望第四行到最后一行的按钮执行该函数,我下面的代码在重置计时器方面不起作用 @导入url('https://fonts.googleapis.com/css2?family=Roboto+板:wght@100&显示=交换'; p{ 字体系列:“Roboto Slab”,衬线; 文本对齐:居中; 字体大小
@导入url('https://fonts.googleapis.com/css2?family=Roboto+板:wght@100&显示=交换';
p{
字体系列:“Roboto Slab”,衬线;
文本对齐:居中;
字体大小:60px;
边际上限:0px;
}
//设定我们开始计算的日期
var countupDate=新日期();
函数resetcountupDate(){
var计数更新;
countupDate=Date();
}
//每1秒更新一次计数
var x=setInterval(函数(){
//获取今天的日期和时间
var now=new Date().getTime();
//找出从现在到盘点日期之间的距离
var距离=现在-计数更新;
//天、小时、分钟和秒的时间计算
变量天数=数学楼层(距离/(1000*60*60*24));
可变小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60));
var分钟=数学楼层((距离%(1000*60*60))/(1000*60));
var秒=数学楼层((距离%(1000*60))/1000);
//在id=“demo”的元素中输出结果
document.getElementById(“demo”).innerHTML=days+d+hours+h+
分钟+米+秒+秒;
}, 1000);
主要问题是在interval中使用的countupDate
具有全局范围,因此在reset…
中重新定义它不会影响预期的变量
function resetcountupDate() {
countupDate = new Date() // just this only
}
此外,我建议进行一些额外的更改,使其更像是重置。首先,我做了一个返回间隔的函数,所以当重置时,它首先停止间隔。其次,我还将display设置为一个单独的函数,同时设置天、小时、分钟、秒
全局范围,因此在重置时,我还将所有这些变量设置为0,显示初始值,然后再次开始间隔
function resetcountupDate() {
clearInterval(x)
days = hours = minutes = seconds = 0
display()
countupDate = new Date()
x = startInterval()
}
//设置我们开始计数的日期
var countupDate=新日期()
变量天、小时、分钟、秒
函数显示(){
document.getElementById(“demo”).innerHTML=
天+天+小时+小时+分钟+米+秒+秒
}
函数startInterval(){
返回设置间隔(函数(){
//获取今天的日期和时间
var now=new Date().getTime()
//找出从现在到盘点日期之间的距离
var distance=now-countupDate
//天、小时、分钟和秒的时间计算
天数=数学楼层(距离/(1000*60*60*24))
小时=数学楼层((距离%(1000*60*60*24))/(1000*60*60))
分钟=数学楼层((距离%(1000*60*60))/(1000*60))
秒=数学楼层((距离%(1000*60))/1000)
//在id=“demo”的元素中输出结果
显示()
}, 1000)
}
函数resetcountupDate(){
净空间隔(x)
天=小时=分钟=秒=0
显示()
countupDate=新日期()
x=startInterval()
}
//每1秒更新一次计数
var x=startInterval()
@导入url('https://fonts.googleapis.com/css2?family=Roboto+板:wght@100&显示=交换';
p{
字体系列:“Roboto Slab”,衬线;
文本对齐:居中;
字体大小:60px;
边际上限:0px;
}
这可能会帮助您:在resetcountupDate
removevar countupDate中代码>只创建一个新变量,而不是重置已定义的变量。这是否回答了您的问题?