当前位置: 首页 > news >正文

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);
                })();
            }
        }

转载于:https://www.cnblogs.com/79039535/archive/2011/07/11/2102827.html

相关文章:

  • SQL注入神器——sqlmap
  • scp从多台机器上批量下载文件到本机(升级版)
  • WordPress的url链接带“/”反斜杠
  • 解决C3P0在Linux下Failed to get local InetAddress for VMID问题
  • Surface 2.0 SDK在WPF中应用
  • 基于GNS3的独臂路由配置
  • DevExpress XtraReports 入门二 创建 data-aware(数据感知) 报表
  • Python基础之面向对象
  • C#加密汇总
  • 压缩打包介绍,gzip、bzip2、xz压缩工具
  • eclipse不能自动编译工程的解决方法
  • 普天发布新一代配线架,终结争论?
  • Server2008 安装 Zune
  • Asp.Net 开放式并发处理(和保守性并发)介绍
  • 如何在Windows XP上安装Windows Phone Developer Tools
  • 03Go 类型总结
  • Android优雅地处理按钮重复点击
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • gitlab-ci配置详解(一)
  • GraphQL学习过程应该是这样的
  • HTML5新特性总结
  • idea + plantuml 画流程图
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Java多线程(4):使用线程池执行定时任务
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue--为什么data属性必须是一个函数
  • Webpack 4x 之路 ( 四 )
  • 高度不固定时垂直居中
  • 微信公众号开发小记——5.python微信红包
  • 译有关态射的一切
  • 用Visual Studio开发以太坊智能合约
  • 转载:[译] 内容加速黑科技趣谈
  • 你对linux中grep命令知道多少?
  • ​马来语翻译中文去哪比较好?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #Linux(Source Insight安装及工程建立)
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (2015)JS ES6 必知的十个 特性
  • (4) PIVOT 和 UPIVOT 的使用
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (pojstep1.3.1)1017(构造法模拟)
  • (二)windows配置JDK环境
  • (离散数学)逻辑连接词
  • (六)vue-router+UI组件库
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .gitignore文件_Git:.gitignore
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .Net MVC + EF搭建学生管理系统
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .pop ----remove 删除
  • /boot 内存空间不够
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • :中兴通讯为何成功