JS电子时钟

开发工具与关键技术:VS2015,Javascript

撰写时间:2019年6月1日

用JS来写个简单的电子时钟
思路:
先获取计算机的当前时间,然后通过计时器不断的获取当前时间,从而达到电子时钟的效果
样式必不可少的,先把电子时钟的样式设计好

样式:

<div class="row">
            <div class="col mt-5">
                <label>电子时钟:</label>
                <input type="text" name="name" value="" class="w-25 text-center" id="open" disabled/>
                <button onclick="timeStart()">时间流逝</button>
                <button onclick="timeStop()">时间静止</button>
            </div>
        </div>

效果:
在这里插入图片描述
接着用JS代码获取当前的时间,得到年,月,日,时,分,秒。
在这里插入图片描述
这便是直接用JS获取的时间,但,显然这并不是一个电子时钟该有的样子,所以要对这个时间加工一下,做出自己想要的样式。

先来把时间调整一下去掉多余的部分,电子时钟只需要年,月,日,时,分,秒。
在这里插入图片描述
然而这还不是一个电子时钟的样子,所以现在要对这个时间顺序进行调整,然后重新拼接。

月,日,时,分,秒,有些特殊,在计算机里无法自行设计出01,02,03,之类的数字,而月,日,时,分,秒,却又包含有这样的数字,所以要对,月,日,时,分,秒,进行判断,拼接。
当数字为1-9的时候就在1-9前拼接一个“0”,这样就有了01,02,03之类的效果。

月份这个也有点特殊,因为计算机算数是从0开始的,而现实中是没有00这个月份,所以要在月份后面+1,这样就不会出现00这样的情况

然后再把日期时间重新拼接一下,做出自己想要的日期时间顺序,再把拼接好的日期时间赋值给input标签。

//把days函数赋予input标签
        function play() {
            var mons = days();
            document.getElementById("open").value = mons;
        }

        //年月日时分秒重新拼接
        function days() {
            var datas = new Date();
            var on1 = "-";
            var on2 = ":";
            var onY = datas.getFullYear(); //年
            var onM = datas.getMonth()+1; //月
            var onD = datas.getDate(); //日
            var onS = datas.getHours(); //时
            var onF = datas.getMinutes(); //分
            var onN = datas.getSeconds(); //秒

            if (onM >= 1 && onM <= 9) { //月
                onM = "0" + onM;
            }
            if (onD >= 1 && onD <= 9) { //日
                onD = "0" + onD;
            }
            if (onS >= 0 && onS <= 9) { //时
                onS = "0" + onS;
            }
            if (onF >= 0 && onF <= 9) { //分
                onF = "0" + onF;
            }
            if (onN >= 0 && onN <= 9) { //秒
                onN = "0" + onN;
            }
            var strTime = onY + on1 + onM + on1 + onD + "\t" + onS + on2 + onF + on2 + onN;
            return strTime;
        }

这时候就得到了一个静止的时间,而电子时钟需要的是一个动态的时间,所以这里可以选择用计时器来不断来调用“play()”这个函数,每隔一秒就去调用“play()”,不断的刷新input标签的值,这样就可以达到电子时钟的效果。

//时间流逝
        var time = null;
        function timeStart() {
            time = setInterval(play, 1000);
        }

效果图:

在这里插入图片描述
电子时钟的样式,设计了两个按钮,“时间流逝”和“时间静止”。
在点击“时间流逝”按钮,时间是动态的。
在点击“时间静止”按钮,时间是静态的。

下面的就把“时间静止”这个按钮的功能补全。

在点击“时间静止”按钮后,电子时钟就不再读秒,停止获取当前时间。
当再次点击“时间流逝”按钮后电子时钟还是会再次运行
可以选择把计时器清空,不再进行读秒
用到 JS内部定义的clearInterval()

		//时间静止
        function timeStop() {
            clearInterval(time);
        }
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值