获取2个输入字段中的日期差异并将其显示在另一个字段上

时间:2015-06-05 16:14:07

标签: javascript

我在javascript中是noobie,并且一直在为这个主题实现正确的代码而遇到麻烦。我已经尝试检查您网站和其他人的现有论坛问题,但我总是最终得到一个破损的代码。基本上,我需要DueInDays输入文本来显示两个字段中任何一个字段的DueDate和AssignDate onChange之间的差异。下面是我试过的最后一个代码。



function diffrenceindays() {
  var startdate = GetDateValue(AssignDate);
  var Enddate = GetDateValue(DueDate);

  var oneday = 1000 * 60 * 60 * 24;
  var differenceInDays = ((Enddate - startdate) / oneday);
  if (differenceInDays < 0) {
    alert(" date cannot be less then start date");

  }
  alert(" diffrence in days  " + differenceInDays);

}

function GetDateValue(field) {


  var year = field.getFullYear();
  var month = field.getMonth();
  var day = field.getDate();
  dateOnly = new Date(year, month, day);
  return dateOnly;


}
&#13;
<form>
  <label>Due Date
    <input type="text" class="DatePicker" name="DueDate" id="DueDate" value="" size="32" onchange="diffrenceindays();" />
  </label>
  <label>Assign Date
    <input type="text" class="DatePicker" name="AssignDate" id="AssignDate" value="" size="32" onchange="diffrenceindays();" />
  </label>
  <label>Due in Days
    <input type="text" id="DueInDays" />
  </label>
</form>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

开始日期和结束日期是日期对象。如果要比较它们的相对时间,则应使用getTime方法 即。

function diffrenceInDays(date1,date2) {
      var startdate = date1.getTime();
      var enddate = date2.getTime();

      var oneday = 1000 * 60 * 60 * 24;
      var differenceInDays = ((enddate - startdate) / oneday);
      if (differenceInDays < 0) {
        alert(" date cannot be less then start date");

      }
      alert(" diffrence in days  " + Math.floor(differenceInDays));
}

您应该将日期传递给函数,而不是在函数中找到它们。

你还应该阅读epascarello的评论。