分别用html的date和time控件获取起始日期和时间值,并用JavaScript的change方法计算相隔时间数,结果保留2位小数
时间: 2024-03-27 08:37:25 浏览: 49
好的,您可以这样实现:
```html
<label for="start-date">起始日期:</label>
<input type="date" id="start-date">
<label for="start-time">起始时间:</label>
<input type="time" id="start-time">
<label for="end-date">结束日期:</label>
<input type="date" id="end-date">
<label for="end-time">结束时间:</label>
<input type="time" id="end-time">
<p>相隔时间数为:<span id="time-diff"></span></p>
<script>
const startDateInput = document.getElementById('start-date');
const startTimeInput = document.getElementById('start-time');
const endDateInput = document.getElementById('end-date');
const endTimeInput = document.getElementById('end-time');
const timeDiffOutput = document.getElementById('time-diff');
// 绑定 change 事件
startDateInput.addEventListener('change', calculateTimeDiff);
startTimeInput.addEventListener('change', calculateTimeDiff);
endDateInput.addEventListener('change', calculateTimeDiff);
endTimeInput.addEventListener('change', calculateTimeDiff);
function calculateTimeDiff() {
const startDate = new Date(`${startDateInput.value}T${startTimeInput.value}:00`);
const endDate = new Date(`${endDateInput.value}T${endTimeInput.value}:00`);
const timeDiff = (endDate.getTime() - startDate.getTime()) / 1000;
timeDiffOutput.textContent = timeDiff.toFixed(2);
}
</script>
```
解析:
1. 首先在 HTML 中创建起始日期、起始时间、结束日期、结束时间的输入框,以及一个用于输出相隔时间数的占位符。
2. 使用 JavaScript 获取到这些输入框和占位符的 DOM 节点。
3. 给每个输入框绑定一个 change 事件,当日期或时间被修改时,会触发这个事件。
4. 在 calculateTimeDiff 函数中,获取每个输入框的值,并使用它们构造两个 Date 对象,分别表示起始时间和结束时间。
5. 通过 getTime 方法获取两个时间戳(单位为毫秒),并计算它们的差值,然后将结果除以 1000,得到相隔的秒数。
6. 最后使用 toFixed 方法保留 2 位小数,并将结果输出到占位符中。
阅读全文