使用javascript创建基本时钟时出现问题
我试图用javascript构建一个简单的时钟,但我不明白为什么它不工作使用javascript创建基本时钟时出现问题,javascript,jquery,time,clock,Javascript,Jquery,Time,Clock,我试图用javascript构建一个简单的时钟,但我不明白为什么它不工作 $(document).ready(function() { function updateTime() { var now = newDate(); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds();
$(document).ready(function() {
function updateTime() {
var now = newDate();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
var currenTime = hours + ':' + minutes ':' + seconds;
var counter = document.getElementById('counter');
counter.innerHTML = currentTime;
}
updateTime();
});
new
和Date()
之间的空白。在此之前,您真的应该看看devtoolssetInterval
,或递归setTimeout
首先,您需要修复代码中的错误:
新建
和日期
(新建日期
)之间的空格var currentTime
->var currentTime
var currentTime
setInterval
每秒调用updateTime
setInterval(updateTime, 1000);
像这样
当然,在html中定义
$(文档).ready(函数(){
函数updateTime(){
var now=新日期();
var hours=now.getHours();
var minutes=now.getMinutes();
var seconds=now.getSeconds();
var currentTime=小时+':'+分钟+':'+秒;
var counter=document.getElementById('counter');
counter.innerHTML=当前时间;
}
updateTime();
setInterval(更新时间,1000);
});代码>
功能倒计时(id、计时器){
计时器--;
daysRemain=数学楼层(计时器/86400);
金额=计时器%86400;
hrsRemain=数学下限(金额/3600);
金额=计时器%3600;
最小剩余=数学下限(金额/60);
金额=计时器%60;
secsRemain=数学下限(金额);
//如果长度小于2个字符,则用前导0填充字符串
如果(secsRemain.length<2){
secsRemain='0'+secsRemain;
}
//剩余时间的字符串格式
时钟=daysRemain+”:“+hrsRemain+”:“+minsRemain+”:“+secsRemain;
document.getElementById(id).innerHTML=clock;
如果(计时器>0){
//还有时间,请在1秒后再次调用此函数
设置超时(“倒计时”(“+id+”,“+timer+”),1000);
}否则{
//时间到了!把倒计时藏起来
document.getElementById(id).innerHTML='Time Expired';
}
}
这是使用javascript创建计时器时钟的另一种方法
newDate()//错误
应为新日期()
counter.innerHTML=CurrentTime代码>
应该是counter.innerHTML=currentTime代码>
使用setInterval
什么是newDate
函数?是不是应该是新日期()
?如果应该的话,为什么您没有检查控制台来修复这个简单的印刷错误?请解释问题是什么-例如错误消息。您在domready
调用了一次,但您希望它会随着时间的推移而更新?在修复新日期()
之后,您需要一个时间间隔
是的,很抱歉,我更改了新日期(),我需要设置一个更新时间间隔,但问题是我根本没有时间显示。我有id为“counter”的div。我还看到我拼写了var currentTime而不是currentTime,但即使修复了它也没有显示出来。。可怜,什么树setInterval
将每隔一秒钟运行一次此方法。请提出一个更好的解决方案,每个方法调用运行另一个setInterval只需将setInterval
更改为setTimeout
或将setInterval
移到updateTime
之外即可,很抱歉;)谢谢
function countdown(id, timer){
timer--;
daysRemain = Math.floor(timer / 86400);
amount = timer%86400;
hrsRemain = Math.floor(amount / 3600);
amount = timer%3600;
minsRemain = Math.floor(amount/60);
amount = timer%60;
secsRemain =Math.floor(amount);
// Pad the string with leading 0 if less than 2 chars long
if (secsRemain.length < 2) {
secsRemain = '0' + secsRemain;
}
// String format the remaining time
clock = daysRemain + ":" + hrsRemain + ":" + minsRemain + ":" + secsRemain;
document.getElementById(id).innerHTML = clock;
if ( timer > 0 ) {
// Time still remains, call this function again in 1 sec
setTimeout("countdown('" + id + "'," + timer + ")", 1000);
} else {
// Time is out! Hide the countdown
document.getElementById(id).innerHTML = 'Time Expired';
}
}
$(document).ready(function() {
var counter = document.getElementById('counter');
window.setInterval(function() {
console.log(1);
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
var currentTime = hours + ':' + minutes +':' + seconds;
counter.innerHTML = currentTime;
}
,'1000');
});