Javascript自定义两个时间的计算

<!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>


版权声明:本文为weixin_48372590原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。