console
function getTimeDiffInSeconds(date1, date2) {
const setDefaultTime = (date) => {
if (!date.includes('T') && !date.includes(' ')) {
return new Date(`${date}T10:00:00`);
}
return new Date(date);
};
const d1 = setDefaultTime(date1);
const d2 = setDefaultTime(date2);
return Math.abs(Math.floor((d2 - d1) / 1000));
}
function secondsToHMS(seconds) {
const h = Math.floor(seconds / 3600);
const m = Math.floor((seconds % 3600) / 60);
const s = seconds % 60;
const pad = (num) => num.toString().padStart(2, '0');
return `${pad(h)}:${pad(m)}:${pad(s)}`;
}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>时间差计算器</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 0 auto;
padding: 20px;
text-align: center;
}
.container {
background-color: #f5f5f5;
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
h1 {
color: #333;
}
.result {
margin: 20px 0;
padding: 15px;
background-color: #e9f7fe;
border-radius: 5px;
font-size: 18px;
}
.time-input {
margin: 15px 0;
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
input {
padding: 8px;
border: 1px solid #ddd;
border-radius: 4px;
width: 200px;
text-align: center;
}
.update-info {
font-size: 14px;
color: #666;
margin-top: 10px;
}
</style>
</head>
<body>
<div class="container">
<h1>时间差计算器</h1>
<div class="time-input">
<label for="targetDate">目标日期</label>
<input type="date" id="targetDate" value="2023-01-11">
</div>
<div class="result">
<p>相差秒数: <span id="secondsDiff">0</span> 秒</p>
<p>时间格式: <span id="hmsFormat">00:00:00</span></p>
</div>
<div class="update-info">
最后更新时间: <span id="updateTime"></span>
</div>
</div>
<script>
function getTimeDiffInSeconds(date1, date2) {
const setDefaultTime = (date) => {
if (!date.includes('T') && !date.includes(' ')) {
return new Date(`${date}T10:00:00`);
}
return new Date(date);
};
const d1 = setDefaultTime(date1);
const d2 = setDefaultTime(date2);
return Math.abs(Math.floor((d2 - d1) / 1000));
}
function secondsToHMS(seconds) {
const h = Math.floor(seconds / 3600);
const m = Math.floor((seconds % 3600) / 60);
const s = seconds % 60;
const pad = (num) => num.toString().padStart(2, '0');
return `${pad(h)}:${pad(m)}:${pad(s)}`;
}
function updateTimeDifference() {
const targetDate = document.getElementById('targetDate').value;
const now = new Date();
const nowStr = now.toISOString().split('T')[0];
const secondsDiff = getTimeDiffInSeconds(targetDate, nowStr);
const hmsFormat = secondsToHMS(secondsDiff);
document.getElementById('secondsDiff').textContent = secondsDiff;
document.getElementById('hmsFormat').textContent = hmsFormat;
document.getElementById('updateTime').textContent = now.toLocaleString();
}
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('targetDate').value = '2023-01-11';
updateTimeDifference();
setInterval(updateTimeDifference, 1000);
document.getElementById('targetDate').addEventListener('change', updateTimeDifference);
});
</script>
</body>
</html>