<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>自定义日期</title>
</head>
<p>适用场景:A输入两个有范围的日期,开始时间和结束时间,B就算出来往前推的时间,范围一样 <br /><br />
比如:A开始时间:2022-04-15 结束时间:2022-04-28 <br /><br />
就算出B开始时间:2022-04-01 结束时间:2022-04-14
</p>
<body>
<div>
<p>A</p>
开始时间:<input required="required" id="date1">
结束时间:<input required="required" id="date2"><br />
<br />
<br />
点击确定算出B的两个时间?♂️????? <button style="padding:10px;background-color:pink;border: none;" οnclick="btnclick()">确定</button>
</div>
<div>
<p>B</p>
开始时间:<input id="date3">
结束时间:<input id="date4">
</div>
</body>
<script>
// 这个函数让日期格式化成 xxxx - xx - xx 格式
const formatTime = date => {
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return [year, month, day].map(formatNumber).join('-')
};
const formatNumber = n => {
n = n.toString()
return n[1] ? n : '0' + n
}
// 这个函数让 时间变成毫秒
function date2Timestamp(_date) {
var d = new Date(_date.replace(/-/g, "/"));// 正则 - 改成 / 兼容
return d.getTime();
// getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。
};
// 点击确定算出b的两个时间
function btnclick() {
var date1 = document.getElementById("date1").value;
var date2 = document.getElementById("date2").value;
if(!date1 || !date2){
alert("请输入A的开始和结束时间")
return;
}
let second = this.date2Timestamp(date1 + " 00:00:00") - (24 * 60 * 60 * 1000) //b的结束时间
// 还有b的开始时间date3没算,用毫秒算
// date3 = date4-(date2- date1)
let thirst = second - (this.date2Timestamp(date2 + " 00:00:00") - this.date2Timestamp(date1 + " 00:00:00"))
document.getElementById("date3").value = formatTime(new Date(thirst))
document.getElementById("date4").value = formatTime(new Date(second))
}
</script>
</html>
Javascript自定义两个时间的计算
版权声明:本文为weixin_48372590原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。