如何为数字添加前导零?实时时间显示补零异常求助
解决数字前导零缺失与时间显示格式问题
嗨,这就帮你搞定这两个问题!
一、如何为数字添加前导零?
这里有两种实用方法,你可以根据场景选择:
方法1:传统条件判断函数
兼容性拉满,适配所有浏览器:
function addLeadingZero(num) { // 数字小于10就补0,否则直接转字符串返回 return num < 10 ? `0${num}` : num.toString(); }
方法2:ES6+的padStart()方法
写法更简洁,现代浏览器均支持:
function addLeadingZero(num) { // 把数字转成字符串,自动补0到2位长度 return num.toString().padStart(2, '0'); }
调用示例:addLeadingZero(9)返回"09",addLeadingZero(12)返回"12"。
二、修复你的时间显示异常问题
你的代码里正是因为小时、分钟没有补前导零,才会出现11:9这种格式。我帮你修改了代码,直接用上面的方法处理时间数字即可:
修改后的完整代码:
var nIntervId; function updateTime() { nIntervId = setInterval(flashTime, 1000*2); } // 新增前导零工具函数 function addLeadingZero(num) { return num.toString().padStart(2, '0'); } function flashTime() { var now = new Date(); var h = addLeadingZero(now.getHours()); var m = addLeadingZero(now.getMinutes()); // 如果需要显示秒数,也可以用同样方法处理 // var s = addLeadingZero(now.getSeconds()); // var time = h + ':' + m + ':' + s; var time = h + ':' + m; $('.time').html(time); } $(function() { updateTime(); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <span class="time" style="margin-left:20px"></span>
现在运行代码,当分钟是个位数时会自动补0,比如9分钟会显示成11:09,完美解决你的格式问题~
内容的提问来源于stack exchange,提问作者peace_love
相关产品推荐
相关产品推荐

