一个javascript的问题

spider_home 2011-05-16 10:23:49
function time(){
var btn=window.document.getElementById("time");

if(btn)
{
var now=new Date();
var nowhours=now.getHours();
var nowminutes=now.getMinutes();
var nowseconds=now.getSeconds();
if(nowseconds==59)
{
nowseconds=0;
nowminutes++;
if(nowminutes==59)
{
nowminutes=0;
nowhours++;
if(nowhours==23)
{
nowhours=0;
}
}
}
else
{
nowseconds++;
}
btn.value=nowhours+":"+nowminutes+":"+nowseconds;
}
}
setInterval("time()",1000);

它的运行结果比正常的要快一秒 我知道啥原因 但不知道如何解决 求解决
...全文
116 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kongxh1218 2011-05-17
  • 打赏
  • 举报
回复
因为你调用time()的时候就是获取了本地时间,然后紧接着又对nowseconds++操作,所以时间肯定快了1秒
修改的话你只要把这句改成下面这样就可以了

var nowseconds=now.getSeconds() - 1;
汉尼拔 2011-05-17
  • 打赏
  • 举报
回复

function time(){
var btn=window.document.getElementById("time");
btn.value = new Date().toLocaleTimeString();
}
setInterval("time()",1000);


这样就可以了
a260881071 2011-05-17
  • 打赏
  • 举报
回复
调了一下。你的程序有问题。比如13:40:40
nowseconds就会变成41,不知道你为什么要这样写。

 function time() {
var btn = window.document.getElementById("testButton");

if (btn) {
var now = new Date();
var nowhours = now.getHours();
var nowminutes = now.getMinutes();
var nowseconds = now.getSeconds();
// if (nowseconds == 60) {
// nowseconds = 0;
// nowminutes++;
// if (nowminutes == 60) {
// nowminutes = 0;
// nowhours++;
// if (nowhours == 24) {
// nowhours = 0;
// }
// }
// }
// else {
// nowseconds++;
// }
btn.value = nowhours + ":" + nowminutes + ":" + nowseconds;
}
}
setInterval("time()", 1000);

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧