JavaScript在两个日期和时间之间的小时数差异

Von*_*cky 1 javascript jquery datetime date

我的html文件中有三个类型为text的输入字段。

  1. 第一个输入字段称为OLD DATE&TIME。
  2. 第二个输入字段称为“新日期和时间”。
  3. 第三个输入字段称为“时差”。

我想要的是:

  • 如果用户输入第一个输入字段(旧的日期和时间),然后输入第二个输入字段(新的日期和时间),则只有在第二个输入字段填充日期和时间之后,第三个输入字段才必须自动显示时差和松散的焦点(onBlur)
  • 如果第二个输入(新日期和时间)或第一个输入(旧日期和时间)为空,则第三个输入(小时数差异)将不会给出答案。

我很高兴在第一和第二输入上有一个日期时间选择器

这是代码:

<label>OLD DATE & TIME: </label>
<input id="old" type="datetime-local" name="old" />
<p>
    <label>NEW DATE & TIME: </label>
    <input id="new" type="datetime-local" name="new" onBlur="document.getElementById('total').value = (new Date(this.value) - new Date(old.value))/(1000*60*60)" />
<p>
<label>DIFFERENCE IN HOURS :</label>
<br>
<input id="total" type="text" name="total" onChange="changeDate()" />
Run Code Online (Sandbox Code Playgroud)

我知道Firefox和Internet Explorer不支持输入类型= datetime-local,因此我想使用输入类型的文本,但它总是给我NaN。

sun*_*nil 5

如果要使用普通的javascript,则可以通过这种方式进行计算。

    var fromDate = parseInt(new Date(oldDate).getTime()/1000); 
    var toDate = parseInt(new Date(newDate).getTime()/1000);
    var timeDiff = (toDate - fromDate)/3600;  // will give difference in hrs
Run Code Online (Sandbox Code Playgroud)