静态显示时间(页面加载时的时间)

这种方法最简单,只在页面第一次加载时获取并显示一次时间,如果用户长时间停留在页面上,时间不会更新。

网页显示当前时间的代码
(图片来源网络,侵删)

完整代码 (HTML + CSS + JavaScript)

你可以直接将以下代码保存为一个 .html 文件(time.html),然后用浏览器打开即可看到效果。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">静态时间显示</title>
    <style>
        /* CSS 样式,让时间看起来更美观 */
        body {
            background-color: #282c34;
            color: white;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            font-family: 'Courier New', Courier, monospace;
        }
        #clock {
            font-size: 5rem;
            padding: 2rem 4rem;
            border: 3px solid #61dafb;
            border-radius: 10px;
        }
    </style>
</head>
<body>
    <h1>当前时间(静态)</h1>
    <div id="clock"></div>
    <script>
        // 1. 获取显示时间的 <div> 元素
        const clockElement = document.getElementById('clock');
        // 2. 创建一个函数来格式化并显示时间
        function showTime() {
            // 3. 创建一个新的 Date 对象,它会自动包含当前的日期和时间
            const now = new Date();
            // 4. 从 Date 对象中获取各个部分
            const hours = now.getHours();
            const minutes = now.getMinutes();
            const seconds = now.getSeconds();
            // 5. 格式化时间,确保数字是两位数(7 变成 "07")
            const formattedHours = String(hours).padStart(2, '0');
            const formattedMinutes = String(minutes).padStart(2, '0');
            const formattedSeconds = String(seconds).padStart(2, '0');
            // 6. 组合成最终的时间字符串
            const timeString = `${formattedHours}:${formattedMinutes}:${formattedSeconds}`;
            // 7. 将时间字符串设置到 <div> 元素的文本内容中
            clockElement.textContent = timeString;
        }
        // 8. 页面加载完成后,立即调用一次 showTime 函数
        showTime();
    </script>
</body>
</html>

代码解释

  1. HTML:

    • <body> 中有一个 <h1> 标题和一个 <div id="clock">,这个 div 是我们用来显示时间的容器,给它一个 id 是为了方便 JavaScript 找到它。
  2. CSS:

    这部分代码是用来美化页面的,它让背景变暗,文字居中,并给时间显示区域添加了边框和较大的字体,使其更醒目。

    网页显示当前时间的代码
    (图片来源网络,侵删)
  3. JavaScript:

    • document.getElementById('clock'): 这是 DOM 操作的核心,它通过 id 找到页面上的 <div> 元素,并将其存储在 clockElement 变量中。
    • function showTime(): 我们把显示时间的逻辑封装在一个函数里,这样代码更清晰,也方便重复调用。
    • const now = new Date(): 创建一个 Date 对象,这个对象包含了从用户电脑系统获取的当前完整日期和时间信息。
    • now.getHours(), now.getMinutes(), now.getSeconds(): 这些方法分别从 Date 对象中提取出小时、分钟和秒。
    • String(...).padStart(2, '0'): 这是一个非常实用的技巧。padStart(2, '0') 确保返回的字符串总是至少有2位,如果数字小于10(比如7),它会在前面补一个0,变成 "07"。
    • `...`: 这是 ES6 的模板字符串,可以方便地将多个变量拼接成一个字符串。
    • clockElement.textContent = timeString: 将格式化好的时间字符串赋值给 div 的文本内容,这样时间就显示在网页上了。
    • showTime(): 在页面加载完成后,调用这个函数,执行一次时间显示。

动态更新时间(实时显示)

这种方法更实用,时间会像电子钟一样每秒更新一次,它是在方法一的基础上,增加了一个定时器。

完整代码 (HTML + CSS + JavaScript)

只需将方法一的代码中的 <script> 部分替换成下面的代码即可。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">动态时间显示</title>
    <style>
        /* CSS 样式,和上面一样 */
        body {
            background-color: #282c34;
            color: white;
            display: flex;
            flex-direction: column; /* 改为垂直排列 */
            justify-content: center;
            align-items: center;
            height: 100vh;
            font-family: 'Courier New', Courier, monospace;
        }
        h1 {
            margin-bottom: 20px;
        }
        #clock {
            font-size: 5rem;
            padding: 2rem 4rem;
            border: 3px solid #61dafb;
            border-radius: 10px;
        }
    </style>
</head>
<body>
    <h1>当前时间(动态)</h1>
    <div id="clock"></div>
    <script>
        // 1. 获取显示时间的 <div> 元素
        const clockElement = document.getElementById('clock');
        // 2. 创建一个函数来更新时间
        function updateClock() {
            const now = new Date();
            const hours = String(now.getHours()).padStart(2, '0');
            const minutes = String(now.getMinutes()).padStart(2, '0');
            const seconds = String(now.getSeconds()).padStart(2, '0');
            const timeString = `${hours}:${minutes}:${seconds}`;
            clockElement.textContent = timeString;
        }
        // 3. 立即执行一次,避免页面加载后等待1秒才显示时间
        updateClock();
        // 4. 设置一个定时器,每1000毫秒(即1秒)调用一次 updateClock 函数
        setInterval(updateClock, 1000);
    </script>
</body>
</html>

关键改动解释

  • 函数名: 我们把 showTime 改名为 updateClock,因为它现在的职责是“更新”时间,而不仅仅是“显示”一次。
  • setInterval(updateClock, 1000): 这是实现动态效果的核心。
    • setInterval 是 JavaScript 的一个内置函数,它的作用是每隔一段固定的时间,就重复执行一个指定的函数。
    • 第一个参数 updateClock 是要重复执行的函数。
    • 第二个参数 1000 是时间间隔,单位是毫秒。1000 毫秒等于 1 秒。
  • 立即调用 updateClock(): 如果不加这行代码,页面加载后会等待1秒,时间才会第一次出现,加上这行,可以确保时间在页面加载的瞬间就显示出来。
特性 方法一 (静态) 方法二 (动态)
实现方式 调用一次 showTime() 函数 调用 updateClock(),并用 setInterval 每秒重复调用
时间更新 仅在页面加载时更新 每秒自动更新
适用场景 显示创建时间、发布时间等不需要变化的时间 显示当前时间、倒计时等需要实时变化的信息
代码复杂度 简单 稍复杂,但逻辑清晰

对于“显示当前时间”这个需求,方法二(动态更新) 是最常用和最合适的。