JS时间差 ( 建议收藏 )
用Promise封装的时间差
传入格式2021-01-27 04:56:38
如果是2021/01/27 04:56:38
直接调用或从新赋值
let dateBegin = new Date(d1.replace(/-/g, "/"));
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>time</title>
<style type="text/css">
#div{
position: fixed;
top: 20px;
left: 50%;
transform: translate(-50%,0);
border: 1px solid red;
height: 300px;
width: 300px;
}
#div div{
margin: 10px;
color: darkblue;
}
</style>
</head>
<body>
<div id="div"></div>
<script type="text/javascript">
let div = document.getElementById("div");
let date = new Date();
function timeFn(d1) {//di作为一个变量传进来
return new Promise((reslove,reject)=>{
//如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
let dateBegin = new Date(d1.replace(/-/g, "/"));//将-转化为/,使用new Date
let dateEnd = new Date();//获取当前时间
let dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数
let dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
let leave1=dateDiff%(24*3600*1000) //计算天数后剩余的毫秒数
let hours=Math.floor(leave1/(3600*1000))//计算出小时数
//计算相差分钟数
let leave2=leave1%(3600*1000) //计算小时数后剩余的毫秒数
let minutes=Math.floor(leave2/(60*1000))//计算相差分钟数
//计算相差秒数
let leave3=leave2%(60*1000) //计算分钟数后剩余的毫秒数
let seconds=Math.round(leave3/1000)
let res = {dayDiff,hours,minutes,seconds,leave1,dateDiff};
reslove(res);
})
}
let t3="2021-01-27 04:56:38";
let intervalTimeOut = 50;
setInterval(()=>{
timeFn(t3).then(res=>{
div.innerHTML=`
<div>相差: ${res.dayDiff}天, ${res.hours}小时, ${res.minutes}分钟, ${res.seconds}秒</div>
<div>时间差的毫秒数: ${res.dateDiff}</div>
<div>计算出相差天数: ${res.dayDiff}</div>
<div>计算天数后剩余的毫秒数: ${res.leave1}</div>
<div>计算出小时数: ${res.hours} h</div>
<div>计算相差分钟数: ${res.minutes} m</div>
<div>计算相差秒数: ${res.seconds} s</div>
`
});
},intervalTimeOut)
</script>
</body>
</html>
有问题联系QQ1291481728或在下方评论,会在第一时刻处理。