如何从头开始制作时钟对象(Javascript)

时间:2014-12-14 17:16:18

标签: javascript object

我想制作一个时钟对象而没有使用get方法,即来自java脚本的gethour,getminute,getsecond以及想法如何操作?

如果我使用变量Hour,Minute和Second创建一个对象,我如何让它们自动更新它们。

我只是想创建一个时钟来设置时间和显示时间。

// JavaScript Document
 function updateTime() { 

    // get all parts of the current time
    var now = new Date();
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var seconds = now.getSeconds();

    if(hours < 10){
        hours = " " + hours
        }
    if(minutes < 10){
        minutes = "0" + minutes
        }
    if(seconds < 10){
        seconds = "0" + seconds
        } 

    // splice them together into a character string named "currentTime"
    var currentTime = hours + ':' + minutes + ':' + seconds;    

    // get the clock div 
    var myClock = document.getElementById('clock');

    // write the currentTime string to the clock div
    myClock.innerHTML = currentTime;
    setTimeout("updateTime()", 1000)
}

function clock(){
    var time = new Date()
    var hr = time.getHours()
    var min = time.getMinutes()
    var sec = time.getSeconds()
    var ampm = " PM "
    if (hr < 12){
    ampm = " AM "
        }
    if (hr > 12){
    hr -= 12
        }
    if (hr < 10){
    hr = " " + hr
        }
    if (min < 10){
    min = "0" + min
        }
    if (sec < 10){
    sec = "0" + sec
        }

     // splice them together into a character string named "currentTime"
    var currentTime = hr + ":" + min + ":" + sec + ampm;    

    // get the clock div 
    var myClock = document.getElementById('clock12');

    // write the currentTime string to the clock div
    myClock.innerHTML = currentTime;
    setTimeout("clock()", 1000)
}

function setClock(){
    var time = new Date()
    var hr = time.getHours()
    var min = time.getMinutes()
    var sec = time.getSeconds()
    var ampm = " PM "
    if (hr < 12){
    ampm = " AM "
        }
    if (hr > 12){
    hr -= 12
        }
    if (hr < 10){
    hr = " " + hr
        }
    if (min < 10){
    min = "0" + min
        }
    if (sec < 10){
    sec = "0" + sec
        }

     // splice them together into a character string named "currentTime"
    var currentTime = hr + ":" + min + ":" + sec + ampm;    

    // get the clock div 
    var myClock = document.getElementById('setClock');

    // write the currentTime string to the clock div
    myClock.innerHTML = currentTime;
    setTimeout("setClock()", 1000)

}

1 个答案:

答案 0 :(得分:0)

如果不使用Date对象,就无法让时钟显示“真实”时间。但是如果你只是想为游戏制作一个任意时钟或者相对的东西,你可以这样做:

var clock = {
  hours: 0,
  minutes: 0,
  seconds: 0
}

function updateTime(part, max) {
  return function(){
    clock[part]++
    if (clock[part] > max) clock[part] = 0
  }
}

setInterval(updateTime('hours', 24), 60*60*1000)
setInterval(updateTime('minutes', 60), 60*1000)
setInterval(updateTime('seconds', 24), 1000)