首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript获取NaN:NaN:NaN

Javascript获取NaN:NaN:NaN
EN

Stack Overflow用户
提问于 2012-09-27 18:01:53
回答 5查看 12.1K关注 0票数 2

我正在制作一个网站,如果一个用户登录,用户被给予一定的注销时间,其中注销时间被定义,并从注销时间-服务器时间获得timeleft。

我已经通过PHP获得了注销时间和服务器时间,但我想动态显示剩余时间,因此需要Javascript。我试过使用下面的代码:

代码语言:javascript
复制
function timerStart(arg1, arg2){
    var counter = setInterval(function() {getTimeLeft(arg1,arg2); }, 1000);
}

function getTimeLeft(arg_endtime, arg_currenttime){
    var endtime = new Date(arg_endtime);
    var curtime = new Date(arg_currenttime);

    var timeleft = new Date(endtime - curtime); //endtime - curtime;

    tlHours = timeleft.getHours();
    tlMinutes = timeleft.getMinutes();
    tlSeconds = timeleft.getSeconds();

    document.getElementById("timeleft").value = tlHours + ":" + tlMinutes + ":" + tlSeconds;

}

其中arg1的值是'2011:10:11 17.30.00‘,arg2的值是字符串'2011:10:11 15:55:31’(是的,它们的格式不同)。但是当我尝试上面的代码时,我得到了NaN:NaN:NaN。我是Javascript的新手(3天),并试图赶上一个最后期限,所以一个彻底的解释是非常感谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-27 18:09:37

Date()函数的格式必须非常具体。

我在这里模拟了一下:http://jsfiddle.net/PtGxk/

正如你所看到的,你的约会对象是“/”-分开的,你的时间是“:”-分开的,一切都好。

票数 1
EN

Stack Overflow用户

发布于 2012-09-27 18:07:26

是'2011:10:11 17.30.00‘,arg2的值是'2011:10:11 15:55:31’

是'2011/10/11 17:30:00‘,arg2的值是'2011/10/11 15:55:31’??

http://jsfiddle.net/8XF3F/7/

票数 2
EN

Stack Overflow用户

发布于 2012-09-27 18:06:41

在Javascript中,NaN的意思是“不是数字”,所以你很可能有一个不是数字的计算结果(因为javascript通常不会抛出错误,而只是继续)。您应该尝试通过对其进行断点或对其执行console.log操作来找出endTime和curTime的实际值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12618825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档