首页 > 编程笔记 > JavaScript笔记 > JS面向对象编程 阅读:49

JS显示当前时间

Date 是 JavaScript 原生的时间管理对象,通过它提供的大量方法和函数可以创建时间对象,获取时间信息,如年、月、日、时、分、秒等,也可以设置时间信息。

本例设计一个当前时间显示,先使用 new Date() 创建一个现在时间对象,然后使用 get 为前缀时间读取方法,分别获取现在时的年、月、日、时、分、秒等信息,最后通过定时器设置每秒执行一次,实现实时更新。

【操作步骤】

1) 设计时间显示函数,在这个函数中先创建 Date 对象,获取当前时间,然后分别获取年份、月份、日份、时、分、秒等信息,最后组装成一个时间字符串并返回。
var showtime = function () {
    var nowdate = new Date();
    var year = nowdate.getFullYear(),
        month = nowdate.getMonth() + 1,
        date = nowdate.getDate(),
        day = nowdate.getDay(),
        week = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
        h = nowdate.getHours(),
        m = nowdate.getMinutes(),
        s = nowdate.getSeconds(),
        h = checkTime(h),
        m = checkTime(m),
        s = checkTime(s);
    return year + "年" + month + "月" + date + "日" + week[day] + " " + h +":" + m + ":" + s;
}

2) 因为平时看到的时间格式一般是 00:00:01,而 getHours()、getMinutes()、getSeconds() 方法得到格式是 0 到 9,而不是 00 到 09 这样的格式。所以在从 9 变成 10的过程中,从一位数变成两位数,同样再从 59秒变为 0 秒,或者 59 分变为 0 分,或者 23 时变为 0 时。例如:23:59:59 的下一秒应该为 00:00:00 ,实际为 0:0:0,这样格式上就不统一,在视觉上也是数字突然增加,或突然减少,产生一种晃动的感觉。

下面定义一个辅助函数,把一位数字的时间改为两位数字显示。
var checkTime = function (i) {
    if (i < 10) {
        i = "0" + i;
    }
    return i;
}

3) 在页面中添加一个标签,设置 id 的值。
<h1 id="showtime"></h1>

4) 为标签绑定定时器,在定时器中设置每秒钟调用一次时间显示函数。
var div = document.getElementById("showtime");
setInterval (function() {
    div.innerHTML = showtime();
}, 1000);  //反复执行函数
显示结果如下:

所有教程

优秀文章