JavaScript 实现网页实时显示当前时间的代码实例

Ivy
Ivy
发布时间:2026-10-13| 5人浏览过
原创

利用 JavaScript 的 Date 对象结合定时器,可以轻易实现网页实时显示当前日期与时间。本文重点解析 getDay()、getMonth() 等常用方法的取值特性及常见错误,并提供可直接运行的完整 HTML/JS 代码实例,帮助开发者快速构建时间显示功能。

实现原理与方法论

要在网页上动态显示当前时间,主要依赖以下两个核心技术点:

  1. Date 对象的时间获取方法:使用内置的 Date 构造函数获取系统时间,并通过特定方法提取年、月、日、星期、时、分、秒。
  2. 定时刷新机制:利用浏览器的 setTimeout 或 setInterval 函数,每隔一定时间(通常为1000毫秒)重新执行一次时间更新函数,从而实现“实时”效果。

关键 API 避坑指南

在使用 Date 对象提取日期信息时,有若干容易混淆的取值规则,务必注意:

第1步:正确区分日期与星期的获取方法

很多初学者会误用方法导致显示异常。

  • getDate():获取一个月中的某一天(1-31)。这是我们需要显示的“日期”数字。
  • getDay():获取一周中的星期几(0-6)。其中 0 代表星期天,1 代表星期一,依此类推至 6(星期六)。

注意:切勿将 getDay() 用于显示日期数字,否则会出现数值错误。

第2步:月份计算的零基索引修正

getMonth() 返回的值范围是 0 到 11。例如,1月返回0,12月返回11。

  • 为了符合人类阅读习惯(1-12月),必须在获取结果后加 1。

完整代码实现步骤

以下代码采用原生 HTML 配合内联 JavaScript 编写,无需额外库即可直接在浏览器运行。通过 setTimeout 递归调用实现每秒刷新。

第3步:构建 HTML 结构与 DOM 元素

首先创建一个用于展示时间的容器元素(如输入框或 div),并赋予唯一 ID 以便后续操作。

第4步:编写核心逻辑函数

定义一个名为 showTime 的函数,执行以下步骤:

  1. 创建时间对象:使用 var date = new Date(); 获取当前时刻。
  2. 解析各个字段:
    - 星期:调用 date.getDay(),需通过 switch-case 或数组映射转换为“星期一”等中文文本。
    - 年月日:分别使用 getFullYear()、getMonth() + 1、getDate()。
    - 时分秒:分别使用 getHours()、getMinutes()、getSeconds()。建议对小于10的数字补零,以美化显示格式(本例为简化逻辑暂未补零)。
  3. 更新页面内容:获取目标 DOM 元素,并将格式化后的字符串赋值给它。
  4. 设置定时器:调用 setTimeout(showTime, 1000);,设定1秒后再次执行自身。
<html>
<head>
  <meta http-equiv="content-type" content="text/html;charset=utf-8">
  <style type="text/css">
    /* 简单的样式调整,便于查看 */
    #time-display {
      font-size: 18px;
      padding: 10px;
      border: 1px solid #ccc;
      width: 300px;
    }
  </style>
</head>
<body>
  <!-- 使用 input 或 div 均可,这里使用 input -->
  <input id="time-display" readonly style="width: 100%;">

  <script type="text/javascript">
    var displayElement = document.getElementById('time-display');

    function showTime() {
      var date = new Date();
      
      // 1. 处理星期 (0=Sun, 1=Mon...)
      var week = date.getDay();
      var weekdayMap = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
      var weekday = weekdayMap[week];

      // 2. 处理年月日
      var year = date.getFullYear();
      var month = date.getMonth() + 1; // 关键:加1
      var day = date.getDate();

      // 3. 处理时分秒
      var hour = date.getHours();
      var minute = date.getMinutes();
      var second = date.getSeconds();

      // 可选:补零逻辑 (例如 9 -> "09")
      // var h = hour < 10 ? "0" + hour : hour;
      // var m = minute < 10 ? "0" + minute : minute;
      // var s = second < 10 ? "0" + second : second;

      // 4. 拼接并显示
      var timeString = year + '年' + month + '月' + day + '日 ' + weekday + ' ' + hour + ':' + minute + ':' + second;
      displayElement.value = timeString;

      // 5. 递归定时调用,实现实时刷新
      setTimeout(showTime, 1000);
    }

    // 首次启动
    showTime();
  </script>
</body>
</html>

常见问题排查

  • 时间不更新:检查是否忘记调用 setTimeout 或在函数内部未再次调用 showTime;确保没有发生 JS 报错阻断执行。
  • 月份显示为0或12错误:回顾第2步,确认是否对 getMonth() 的结果进行了 +1 操作。
  • 星期显示为数字:确认是否使用了 switch-case 或数组映射将 0-6 转换为了对应的中文名称。

总结

通过上述步骤,我们成功实现了在页面上实时显示本地时间的功能。掌握 Date 对象各方法的返回值特性是避免 bug 的关键。该方案代码简洁,不依赖第三方库,适用于大多数静态网页或简单的前端场景。以上就是JavaScript实现网页实时显示当前时间的详细内容,更多关于JavaScript前端开发的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。