我正在制作一个网站,如果一个用户登录,用户被给予一定的注销时间,其中注销时间被定义,并从注销时间-服务器时间获得timeleft。
我已经通过PHP获得了注销时间和服务器时间,但我想动态显示剩余时间,因此需要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天),并试图赶上一个最后期限,所以一个彻底的解释是非常感谢。
发布于 2012-09-27 18:09:37
Date()函数的格式必须非常具体。
我在这里模拟了一下:http://jsfiddle.net/PtGxk/
正如你所看到的,你的约会对象是“/”-分开的,你的时间是“:”-分开的,一切都好。
发布于 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/
发布于 2012-09-27 18:06:41
在Javascript中,NaN的意思是“不是数字”,所以你很可能有一个不是数字的计算结果(因为javascript通常不会抛出错误,而只是继续)。您应该尝试通过对其进行断点或对其执行console.log操作来找出endTime和curTime的实际值。
https://stackoverflow.com/questions/12618825
复制相似问题