用html的time控件获取起始时间值,并用JavaScript的change方法计算相隔时间数,结果保留2位小数
时间: 2024-03-27 10:37:07 浏览: 74
JS计算两个时间相差分钟数的方法示例
可以使用 HTML 的 `<input type="time">` 控件来获取起始时间值,并使用 JavaScript 的 change 事件来计算相隔时间数,并保留 2 位小数。
以下是一个示例代码:
```html
<label for="startTime">起始时间:</label>
<input type="time" id="startTime">
<br>
<label for="endTime">结束时间:</label>
<input type="time" id="endTime">
<br>
<p id="result"></p>
<script>
// 获取起始时间和结束时间的元素
var startTimeElement = document.getElementById("startTime");
var endTimeElement = document.getElementById("endTime");
// 监听起始时间和结束时间的 change 事件
startTimeElement.addEventListener("change", calcTime);
endTimeElement.addEventListener("change", calcTime);
function calcTime() {
var startTime = startTimeElement.value;
var endTime = endTimeElement.value;
// 将时间字符串转换为 Date 对象
var startDate = new Date("1970-01-01T" + startTime + "Z");
var endDate = new Date("1970-01-01T" + endTime + "Z");
// 计算相隔时间数(单位:毫秒)
var diffTime = endDate.getTime() - startDate.getTime();
var diffSeconds = diffTime / 1000;
// 显示结果
var result = document.getElementById("result");
result.innerHTML = "相隔时间数:" + diffSeconds.toFixed(2) + " 秒";
}
</script>
```
以上代码中,我们首先在 HTML 中定义了两个 `<input type="time">` 控件,分别用于输入起始时间和结束时间。然后定义了一个 `<p>` 元素,用于显示计算结果。
在 JavaScript 中,我们通过 `getElementById()` 方法获取起始时间和结束时间的元素,并使用 `addEventListener()` 方法监听其 change 事件,当时间值发生改变时会自动调用 `calcTime()` 函数。
在 `calcTime()` 函数中,我们首先通过 `getElementById()` 方法获取起始时间和结束时间的值,并将其转换为 Date 对象。由于 `<input type="time">` 控件返回的是本地时间,所以我们需要将时间字符串与 "1970-01-01T" 字符串拼接,然后使用 `new Date()` 构造函数将其转换为 Date 对象。
接着,我们计算起始时间和结束时间的相隔时间数(单位:毫秒),并将其转换为秒数。最后,我们将结果显示在页面中,使用 `toFixed(2)` 方法保留 2 位小数。
需要注意的是,上述代码中的时间计算是基于本地时间的,如果需要基于其他时区进行计算,需要进行时区转换。
阅读全文