用<输入类型=日期>

subtracting two dates with the <input type=date>

本文关键字:日期 gt 输入 lt 类型      更新时间:2023-09-26

我在尝试从两个日历选择中获取日期并将其放入下面的计算中时遇到了基本问题。

有人有解决方案吗?

谢谢Iain

<body>
  <h1>Project Details</h1>
  <h3>Please enter the project Notice to Proceed (NTP) date: <input     id="NtpDate" type= "date" name="NtpDate"></h3>
  </br>
  <h3>Please enter the Report date: <input type= "date" name="ReportDate">    </h3>
  <script type="text/javascript">
    // I would like to replace this with the <input type = date> tags ...var     NtpDate = new Date("7/11/2004");
     // I would like to replace this with the <input type = date> tags ...	var      ReportDate = new Date("12/12/2010");	
    var timeDiff = Math.abs(ReportDate.getTime() - NtpDate.getTime());
    var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
     //alert(diffDays);
    document.write("Period =" + diffDays + " (Days from NTP)");
  </script>`
</body>

重复问题如何在javascript 中计算日期差

但这就是如何获得两个日期选择器的值。var ReportDate = document.getElementById('ReportDate').value;

   <body>
  <h1>Project Details</h1>
  <h3>Please enter the project Notice to Proceed (NTP) date: <input     id="NtpDate" type= "date" name="NtpDate"></h3>
  </br>
  <h3>Please enter the Report date: <input id="ReportDate" type= "date" name="ReportDate" onchange="myFunction()">    </h3>
  <script type="text/javascript">
myFunction = function(){
alert(document.getElementById("NtpDate").value +" >> "+document.getElementById("ReportDate").value)
   
 var NtpDate = new Date(document.getElementById("NtpDate").value);
	
var ReportDate = new Date(document.getElementById("ReportDate").value);	
var timeDiff = Math.abs(ReportDate.getTime() - NtpDate.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
 //alert(diffDays);
alert("Period =" + diffDays + " (Days from NTP)");}
  </script>`
</body>

momentJS非常适合日期操作和格式化。因为闰日之类的原因,你自己滚动永远不会完全正确。

这个时刻很简单:

moment('some date').diff('other date', 'days')

moment.diff()

编辑:更新的小提琴

你可以试试这样的东西:

<h3>Please enter the project Notice to Proceed (NTP) date: <input id="NtpDate" type= "date" name="NtpDate"></h3>
<h3>Please enter the Report date: <input type= "date" name="ReportDate" id="abc"></h3>
$("#abc").on("change", function () {
  var olddate = new Date($("#NtpDate").val());
  var newdate = new Date($(this).val());
  var timeDiff = Math.abs(newdate.getTime() - olddate.getTime());
  var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
  alert(diffDays);
});

演示FIDDLE