前端开发系列021-基础篇之日期类型和计时器
本文介绍JavaScript语言中的
Date日期类型
,常见的日期格式处理方式以及计时器相关方法(主要包含setInterval
以及setTimeOut
)。
倒计时实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="timeID"></div>
<script>
var endTimeStr = "2018/10/30 20:00:00";
var oDiv = document.querySelector("#timeID");
function count() {
//获取当前时间
var now = new Date().getTime();
//获取截止时间
var end = new Date(endTimeStr).getTime();
//计算时间差
var leftTime = end - now;
//定义变量 d,h,m,s保存倒计时的时间
var d, h, m, s, timeResult = "已结束";
if (leftTime >= 0) {
d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
m = Math.floor(leftTime / 1000 / 60 % 60);
s = Math.floor(leftTime / 1000 % 60);
timeResult="距离结束的时间为:" + d + " 天 " + h + " 小时 " + m + " 分钟 " + s + " 秒"
}
//更新页面信息
oDiv.innerHTML = timeResult;
}
setInterval(count,1000);
</script>
</body>
</html>
这里给出实现的效果

数据填充 | 补零处理
我们在真实的开发场景中可能需要在对一些数据进行处理的时候进行补零操作。什么意思呢,譬如在上面实现倒计时效果的案例中如果我需要得到的倒计时效果是:05天 04小时 27分钟 32秒
的格式,那么就需要在最后进行拼接之前再进行额外的格式化处理。
我们在显示一个数字的时候(比如是5
),那么想要呈现出的结果可以是5
也可以是05
,这里我们主要探讨后一种情况。这里给出三种具体的实现方案,推荐使用最后一种(更高效也更直接)。
//参数说明:
//第一个参数:num 要具体处理的数据
//第二个参数:length 目标数据的长度
// 第一种实现方案
// function PrefixInteger(num, length) {
// return (num/Math.pow(10,length)).toFixed(length).substr(2);
// }
//第二种实现方案
// function PrefixInteger(num, length) {
// return ( "0000000000000000" + num ).substr( -length );
// }
//第三种实现方案
function PrefixInteger(num, length) {
return (Array(length).join('0') + num).slice(-length);
}
console.log(PrefixInteger(4, 2)); //04
console.log(PrefixInteger(41, 10)); //0000000041
如果前面示例程序中倒计时中具体的时间数值需要2位对齐,不够两位的补零,那么就可以考虑在最终拼接之前调用PrefixInteger方法
并指定length的值为2
来进行格式化操作。这里给出对具体时间进行格式化的调用代码和结果示例。
d = PrefixInteger(Math.floor(leftTime / 1000 / 60 / 60 / 24),2);
h = PrefixInteger(Math.floor(leftTime / 1000 / 60 / 60 % 24),2);
m = PrefixInteger(Math.floor(leftTime / 1000 / 60 % 60),2);
s = PrefixInteger(Math.floor(leftTime / 1000 % 60),2);
timeResult = "距离结束的时间为:" + d + " 天 " + h + " 小时 " + m + " 分钟 " + s + " 秒";
//timeResult的结果示例:距离结束的时间为:08 天 04 小时 27 分钟 07 秒
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2015-12-10 iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示