Javascript setInterval()工作不正常
我是JavaScript新手。我运行代码,根据输入计算用户的生存时间。如果您想看到代码运行,可以在我的类测试服务器上找到它 我的代码的问题是setInterval()工作不正常。根据我的理解,我的html页面应该每1000ms(1s)更新一次,更新的时间是最新的,但是它不做任何事情,也不更新 我以前在一个类似的项目中使用过setInterval(),该项目显示了自纪元以来的秒数,并且运行良好。它更新了秒数。也许我的代码中还有其他东西不允许它工作?我已经通过jslint和jshint运行了我的代码,但找不到我正在犯的错误 提前谢谢Javascript setInterval()工作不正常,javascript,html,css,Javascript,Html,Css,我是JavaScript新手。我运行代码,根据输入计算用户的生存时间。如果您想看到代码运行,可以在我的类测试服务器上找到它 我的代码的问题是setInterval()工作不正常。根据我的理解,我的html页面应该每1000ms(1s)更新一次,更新的时间是最新的,但是它不做任何事情,也不更新 我以前在一个类似的项目中使用过setInterval(),该项目显示了自纪元以来的秒数,并且运行良好。它更新了秒数。也许我的代码中还有其他东西不允许它工作?我已经通过jslint和jshint运行了我的代码
function getUserBirthday(myEpoch) {
"use strict";
var unixEpoch = new Date() / 1000.0;
var secondSince = unixEpoch - myEpoch;
var leftOrAlive = "";
if (secondSince < 0) {
leftOrAlive = ": Seconds Left";
secondSince = secondSince * -1;
} else {
leftOrAlive = ": Seconds Alive";
}
document.getElementById("secondsAlive").innerHTML = secondSince + leftOrAlive;
var years = secondSince / 31556926;
secondSince = secondSince % 31556926;
var months = secondSince / 2629743;
secondSince = secondSince % 2629743;
var days = secondSince / 86400;
secondSince = secondSince % 86400;
var hours = secondSince / 3600;
secondSince = secondSince % 3600;
var minutes = secondSince / 60;
secondSince = secondSince % 60;
var seconds = secondSince;
//Convert Variables To String
years = years.toString();
months = months.toString();
days = days.toString();
hours = hours.toString();
minutes = minutes.toString();
seconds = seconds.toString();
//Remove Trailing Decimal Places
var yearStr = years.slice(0, (years.indexOf(".")));
var monthStr = months.slice(0, (months.indexOf(".")));
var dayStr = days.slice(0, (days.indexOf(".")));
var hourStr = hours.slice(0, (hours.indexOf(".")));
var minuteStr = minutes.slice(0, (minutes.indexOf(".")));
var secondStr = seconds.slice(0, (seconds.indexOf(".")));
//Show Results
document.getElementById("years").innerHTML = yearStr + ": Years";
document.getElementById("months").innerHTML = monthStr + ": Months";
document.getElementById("days").innerHTML = dayStr + ": Days";
document.getElementById("hours").innerHTML = hourStr + ": Hours";
document.getElementById("minutes").innerHTML = minuteStr + ": Minutes";
document.getElementById("seconds").innerHTML = secondStr + ": Second
}
function updateTimeSinceEpoch() {
"use strict";
var strDate = prompt("Enter your birthday: ex. November 12, 1996 00:00:00");
document.getElementById("birthday").innerHTML = strDate;
var myDate = new Date(strDate); // Your timezone!
var myEpoch = myDate.getTime() / 1000.0;
var runFunction = getUserBirthday(myEpoch);
setInterval(runFunction, 1000);
}
函数getUserBirth(myEpoch){
“严格使用”;
var unixEpoch=新日期()/1000.0;
var secondSince=unixEpoch-myEpoch;
var leftOrAlive=“”;
如果(第二次自<0){
leftOrAlive=“:还剩几秒”;
secondafter=secondafter*-1;
}否则{
leftOrAlive=“:生存秒数”;
}
document.getElementById(“secondsAlive”).innerHTML=secondSince+leftOrAlive;
var年数=第二个自/31556926;
secondafter=secondafter%31556926;
var月数=第二个自/2629743;
secondafter=secondafter%2629743;
var天数=自第二天起/86400;
secondafter=secondafter%86400;
var小时数=秒自/3600;
secondafter=secondafter%3600;
var分钟数=秒自/60;
secondafter=secondafter%60;
var秒=秒自;
//将变量转换为字符串
年=年。toString();
月=月。toString();
days=days.toString();
hours=hours.toString();
分钟=分钟.toString();
秒=秒。toString();
//删除后面的小数位
var yearStr=年份切片(0,(年份索引(“.”));
var monthStr=月数切片(0,(月数指数(“.”));
var dayStr=days.slice(0,(days.indexOf(“.”));
var hourStr=hours.slice(0,(hours.indexOf(“.”));
var minuteStr=minutes.slice(0,(minutes.indexOf(“.”));
var secondStr=seconds.slice(0,(seconds.indexOf(“.”));
//显示结果
document.getElementById(“年”).innerHTML=yearStr+“:年”;
document.getElementById(“月”).innerHTML=monthStr+“:月”;
document.getElementById(“天”).innerHTML=dayStr+“:天”;
document.getElementById(“小时”).innerHTML=hourStr+“:小时”;
document.getElementById(“分钟”).innerHTML=minuteStr+“:分钟”;
document.getElementById(“秒”).innerHTML=secondStr+“:秒
}
函数updateTimesIncepoch(){
“严格使用”;
var strDate=prompt(“输入您的生日:例如1996年11月12日00:00:00”);
document.getElementById(“生日”).innerHTML=strDate;
var myDate=新日期(strDate);//您的时区!
var myEpoch=myDate.getTime()/1000.0;
var runFunction=getuserbirth(myEpoch);
设置间隔(运行函数,1000);
}
当您使用时:
var runFunction = getUserBirthday(myEpoch);
setInterval(runFunction, 1000);
runFunction
变量是undefined
,因为getuserbirth()
方法不返回任何内容。因此,使用此结构,函数将只执行一次:
函数getUserBirthday(消息){
控制台日志(消息);
}
var runFunction=getuserbirth(“你好”);
setInterval(runFunction,1000);当您使用:
var runFunction = getUserBirthday(myEpoch);
setInterval(runFunction, 1000);
runFunction
变量是undefined
,因为getuserbirth()
方法不返回任何内容。因此,使用此结构,函数将只执行一次:
函数getUserBirthday(消息){
控制台日志(消息);
}
var runFunction=getuserbirth(“你好”);
setInterval(runFunction,1000);GetUserBirth的最后一行出现语法错误。GetUserBirth的最后一行出现语法错误。