Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript setInterval()工作不正常_Javascript_Html_Css - Fatal编程技术网

Javascript setInterval()工作不正常

Javascript setInterval()工作不正常,javascript,html,css,Javascript,Html,Css,我是JavaScript新手。我运行代码,根据输入计算用户的生存时间。如果您想看到代码运行,可以在我的类测试服务器上找到它 我的代码的问题是setInterval()工作不正常。根据我的理解,我的html页面应该每1000ms(1s)更新一次,更新的时间是最新的,但是它不做任何事情,也不更新 我以前在一个类似的项目中使用过setInterval(),该项目显示了自纪元以来的秒数,并且运行良好。它更新了秒数。也许我的代码中还有其他东西不允许它工作?我已经通过jslint和jshint运行了我的代码

我是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的最后一行出现语法错误。