当前时间与“日期”格式的时间之间的日期差

时间:2018-10-20 08:51:34

标签: javascript

function submit(){
  var date1=input[type="date"];
  var date2=console.log(Date());
  var Datediff= date2 - date1
  alert(Datediff)
}
<form onsubmit="submit">
<input type="date" />
<input type="submit" />
</form>

如您所见,我是一位初学者。尝试自己做所有事情,但没有任何效果,需要帮助。

2 个答案:

答案 0 :(得分:2)

  • 您必须在提交事件时返回false,以防止页面重新加载
  • 您必须在日期输入中输入一个ID才能获取其值
  • 您必须使用日期构造函数创建日期
  • 您必须转换为要显示的单位(天,月...)

function alertDayDiff() {
    var input = document.getElementById('date');
    var date1 = new Date(input.value);
    var date2 = new Date();
    var timediff = Math.abs(date2 - date1);
    var daydiff = Math.floor(timediff / (1000 * 3600 * 24));
    alert(daydiff);
}
<form onsubmit="alertDayDiff(); return false;">
    <input type="date" id="date" />
    <input type="submit" />
</form>

答案 1 :(得分:0)

您的语法很混乱……您需要先学习基础知识,然后再尝试做一些有用的基础知识。

首先,在表单事件中,您需要调用插入括号的函数:<form onsubmit="submit()">,但是显然“ submit”是保留字,因此您需要使用其他函数名。

此行完全错误:var date1=input[type="date"];

这也是错误的,因为console.log不会将值返回到“ date2”:var date2=console.log(Date());,而Date()不是您想要的。您需要一个新的日期实例:“ new Date()”

我在以下示例中进行了一些修复。将每一行与您的代码进行比较,并查看语法差异:

function validateForm() {
  var date1 = document.querySelector('#myDate').valueAsDate;
  var date2 = new Date();
  
  console.log('date1', date1);
  console.log('date2', date2);
  
  var dateDiff = date2 - date1;

  console.log('dateDiff ', dateDiff );
  alert(dateDiff);
  
  return false;
}
<form onsubmit="return validateForm()">
  <input type="date" id="myDate" />
  <button type="submit">Submit</button>
</form>