我的html文件中有三个类型为text的输入字段。
我想要的是:
我很高兴在第一和第二个输入上有一个日期时间选择器。
以下是代码:
<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()" />
我知道firefox和Internet探索不支持输入类型= datetime-local,所以我想使用输入类型文本,但它总是给我NaN。
答案 0 :(得分: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
答案 1 :(得分:2)
请使用moment.js。这也可以改变日期和时间的形式。
var now = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";
moment.utc(moment(now, "DD/MM/YYYY HH:mm:ss").diff(moment(then, "DD/MM/YYYY HH:mm:ss"))).format("HH:mm:ss")
答案 2 :(得分:0)
Date
对象有一个getTime()
方法,它返回自1970年1月1日午夜以来的毫秒数。您可以为要处理的两个日期创建一个Date
对象,在每个上调用getTime()
,减去差异并将结果转换为小时。