You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现网站自定义日期时间的显示与自动更新功能?

自定义日期时间功能开发问题

需求与预期效果

我正在一个大型项目中开发自定义日期时间功能,预期页面结构如下:

<body>
  <input type="date" id="date-input" placeholder="Date">
  <input type="time" id="time-input" placeholder="Time">
  <button onclick="setDateTime()">Set Date & Time</button>
  <h1>Current Date & Time:</h1>
  <span id="datetime-span"></span>
</body>

需要实现的功能:用户输入日期和时间后,点击按钮能显示该日期时间,同时让显示的时间每秒/每分钟自动递增更新。但我不确定如何编写自动更新的逻辑。

当前代码

function setDateTime() {
    var dateInput = document.getElementById('date-input').value;
    var timeInput = document.getElementById('time-input').value;
    var datetimeSpan = document.getElementById('datetime-span');

    var dateTime = dateInput + ' ' + timeInput;
    datetimeSpan.textContent = dateTime;

    // 每分钟更新一次时间
    setInterval(updateDateTime, 60000);
}

function updateDateTime() {
    var dateInput = document.getElementById('date-input').value;
    var timeInput = document.getElementById('time-input').value;
    var datetimeSpan = document.getElementById('datetime-span');
    // 这里该怎么写?
}

问题解决与最终代码

感谢Kiran Shahi的帮助,该问题已解决,最终JavaScript代码如下:

var runningHour;
var runningMinute;
var intervalId;

function setDateTime() {
  var dateInput = document.getElementById('date-input').value;
  var timeInput = document.getElementById('time-input').value;
  var datetimeSpan = document.getElementById('datetime-span');

  runningHour = timeInput.split(":")[0];
  runningMinute = timeInput.split(":")[1];

  var dateTime = dateInput + ' ' + timeInput;
  datetimeSpan.textContent = dateTime;
  clearInterval(intervalId);
  // 为了演示,每秒更新一次时间
  intervalId = setInterval(updateDateTime, 1000);
}

function updateDateTime() {
  var dateInput = document.getElementById('date-input').value;
  var datetimeSpan = document.getElementById('datetime-span');

  if (runningMinute < 59) {
    runningMinute++;
  } else {
    runningMinute = 00;
    if (runningHour < 23) {
      runningHour++;
    } else {
      runningHour = 00;
    }
  }
  var paddedHour = runningHour.toString().padStart(2, '0');
  var paddedMinute = runningMinute.toString().padStart(2, '0');

  datetimeSpan.textContent = dateInput + ' ' + paddedHour + ':' + paddedMinute;
}

内容的提问来源于stack exchange,提问作者Zhou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:05:31