• JS实现动态显示当前时间(12/24小时制)(转载Mr.Think)


    今天又要用到动态显示当前时间,且要求可以切换24/12小时制, 记得很久前写过一个24小时制的,但一时没能找着, 于是又重新写了个,若有需要的朋友自行复制粘贴一份吧.
    很简单的一个功能函数,实现方式不多言,用Date()对象获取到当前时间,然后用setTimeout每隔1秒获取最新的时间.
    写的过程中碰到过一个小小的问题: 我最初的想法是用setInterval()每隔1秒获取最新时间,可是可以,但setInterval如果放在主函数内部,但导致内存泄漏(至于原因, 暂时还没想明白),后来在Rocky的提醒下用setTimeout()才解决内存泄漏问题,感谢Rocky同学:)

    //显示时间
            window.onload = function () {
                function novTimer(ev, time) {
                    /*
                    *ev:需要显示在的元素
                    *time:时间显示模式.若传入12则为12小时制,不传入则为24小时制
                    */
                    //年月日时分秒
                    var Y, M, D, W, H, I, S;
                    //月日时分秒为单位时前面补零
                    function coverZero(i) {
                        if (i < 10) {
                            i = '0' + i;
                        }
                        return i;
                    } (function () {
                        var d = new Date();
                        var Week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
                        Y = coverZero(d.getFullYear());
                        M = coverZero(d.getMonth() + 1);
                        D = coverZero(d.getDate());
                        W = Week[d.getDay()];
                        H = coverZero(d.getHours());
                        I = coverZero(d.getMinutes());
                        S = coverZero(d.getSeconds());
                        if (time && time == 12) {
                            if (H <= 12) {
                                H = '上午 ' + H;
                            } else if (H > 12 && H < 24) {
                                H = '下午 ' + coverZero(H);
                            } else {
                                H = '下午 00';
                            }
                        }
                        ev.innerHTML = Y + '年' + M + '月' + D + '日 ' + ' ' + W + ' ' + H + ':' + I + ':' + S;
                        setTimeout(arguments.callee, 1000);
                    })();
                }
            }
    

  • 相关阅读:
    洛谷P1306 斐波那契公约数
    Codevs 1688 求逆序对(权值线段树)
    poj1006 Biorhythms
    2017-9-2 NOIP模拟赛
    洛谷P1633 二进制
    洛谷P2513 [HAOI2009]逆序对数列
    洛谷P2687 [USACO4.3]逢低吸纳Buy Low, Buy Lower
    洛谷P2285 [HNOI2004]打鼹鼠
    2017-8-31 NOIP模拟赛
    洛谷P2134 百日旅行
  • 原文地址:https://www.cnblogs.com/79039535/p/2102827.html
Copyright © 2020-2023  润新知