详解 JS 取当前时间

在前端开发中,取当前时间是一个非常常见的需求。JS 提供了多种方式来获取当前时间。本文将从多个方面来详细阐述 JS 取当前时间的方法和应用场景。

一、使用 Date() 方法获取当前时间

Date() 是 JS 中获取当前时间最基础的方法。它返回的是当前时间的时间戳,可以根据时间戳来获取具体的年月日时分秒。

    
        let now = new Date(); // 获取当前时间
        let year = now.getFullYear(); // 获取当前年份
        let month = now.getMonth() + 1; // 获取当前月份,加“1”是因为月份是从0开始计算的,但实际月份是从1开始的
        let day = now.getDate(); // 获取当前日期
        let hour = now.getHours(); // 获取当前小时数
        let minute = now.getMinutes(); // 获取当前分钟数
        let second = now.getSeconds(); // 获取当前秒数
        let millisecond = now.getMilliseconds(); // 获取当前毫秒数
        let time = now.getTime(); // 获取当前时间的时间戳
    

使用 Date() 方法获取当前时间,可以适用于大部分需要获取时间的场景。例如,可以根据获取的年月日时分秒来自定义显示时间的格式。

二、使用 moment.js 库获取当前时间

moment.js 是一个非常常见的 JS 库,用于方便地获取当前时间和操作时间。相对于 Date() 方法,moment.js 在格式化显示时间方面更加便捷。在实际开发中,比较常见的使用场景是处理不同时区的时间显示问题。

    
        let now = moment(); // 获取当前时间
        let year = now.format('YYYY'); // 获取当前年份
        let month = now.format('MM'); // 获取当前月份
        let day = now.format('DD'); // 获取当前日期
        let hour = now.format('HH'); // 获取当前小时数
        let minute = now.format('mm'); // 获取当前分钟数
        let second = now.format('ss'); // 获取当前秒数
        let millisecond = now.format('SSS'); // 获取当前毫秒数
    

使用 moment.js 库,可以方便地根据需要来格式化显示时间。例如,可以格式化为“YYYY-MM-DD HH:mm:ss”这样的标准时间格式。

三、使用 setInterval() 方法实现动态显示时间

setInterval() 方法是 JS 中常用的定时器方法,可以在一定的时间间隔内执行指定的函数。使用 setInterval() 方法可以实现动态显示当前时间的功能。

    
        let timeBox = document.getElementById('timebox');

        function showTime() {
            let now = new Date();
            let year = now.getFullYear();
            let month = now.getMonth() + 1;
            let day = now.getDate();
            let hour = now.getHours();
            let minute = now.getMinutes();
            let second = now.getSeconds();
            let timeStr = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
            timeBox.innerText = timeStr;
        }

        setInterval(showTime, 1000); // 每秒执行一次 showTime() 函数
    

使用 setInterval() 方法可以实现当前时间的实时更新,适用于需要实时显示时间的场景。例如,可以将其用于直播、在线考试等场景中。

四、使用 setTimeout() 方法实现倒计时

setTimeout() 方法也是 JS 中常用的定时器方法,可以在指定的时间后执行指定的函数。使用 setTimeout() 方法可以实现倒计时的功能。

    
        let countDownBox = document.getElementById('countdown');
        let endTime = new Date('2021/12/31 23:59:59'); // 倒计时结束时间

        function countDown() {
            let nowTime = new Date();
            let diffTimeSeconds = parseInt((endTime - nowTime) / 1000); // 获取剩余时间(单位:秒)
            if (diffTimeSeconds <= 0) {
                countDownBox.innerText = '倒计时结束!';
            } else {
                let hours = parseInt(diffTimeSeconds / 3600);
                let minutes = parseInt((diffTimeSeconds - hours * 3600) / 60);
                let seconds = diffTimeSeconds - hours * 3600 - minutes * 60;
                let hoursStr = ('00' + hours).substr(-2); // 对字符串进行补0操作
                let minutesStr = ('00' + minutes).substr(-2);
                let secondsStr = ('00' + seconds).substr(-2);
                let timeStr = hoursStr + ':' + minutesStr + ':' + secondsStr;
                countDownBox.innerText = '倒计时:' + timeStr;
                setTimeout(countDown, 1000); // 每秒更新一次倒计时
            }
        }

        countDown();
    

使用 setTimeout() 方法可以实现倒计时的功能,适用于需要倒计时的场景,例如:京东618、双11秒杀活动等。

五、使用第三方时间库 luxon.js 管理时间

luxon.js 是一个增强版的 JS 时间库,它可以方便地进行时间的管理和操作。相对于原生 JS 时间方法,它支持多种时间格式和时区,可以实现非常精细的时间处理。

    
        let now = luxon.DateTime.now(); // 获取当前时间
        let year = now.year; // 获取当前年份
        let month = now.month; // 获取当前月份
        let day = now.day; // 获取当前日期
        let hour = now.hour; // 获取当前小时数
        let minute = now.minute; // 获取当前分钟数
        let second = now.second; // 获取当前秒数
        let millisecond = now.millisecond; // 获取当前毫秒数
    

使用 luxon.js 库,可以进行非常精细的时间处理,包括:时区处理、格式化、持续时间计算等。适用于需要进行复杂时间处理的场景,例如:航班预定、旅行计划等。

原创文章,作者:EVTSP,如若转载,请注明出处:https://www.506064.com/n/372346.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
EVTSPEVTSP
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • 解决docker-compose 容器时间和服务器时间不同步问题

    docker-compose是一种工具,能够让您使用YAML文件来定义和运行多个容器。然而,有时候容器的时间与服务器时间不同步,导致一些不必要的错误和麻烦。以下是解决方法的详细介绍…

    编程 2025-04-29
  • 解析js base64并转成unit

    本文将从多个方面详细介绍js中如何解析base64编码并转成unit格式。 一、base64编码解析 在JavaScript中解析base64编码可以使用atob()函数,它会将b…

    编程 2025-04-29
  • Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的解决方法

    本文将解决Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的问题。同时,给出一些相关示例代码,以帮助读者更好的理解并处理这个问题。 一、问题解…

    编程 2025-04-29
  • 想把你和时间藏起来

    如果你觉得时间过得太快,每天都过得太匆忙,那么你是否曾经想过想把时间藏起来,慢慢享受每一个瞬间?在这篇文章中,我们将会从多个方面,详细地阐述如何想把你和时间藏起来。 一、一些时间管…

    编程 2025-04-28
  • 计算斐波那契数列的时间复杂度解析

    斐波那契数列是一个数列,其中每个数都是前两个数的和,第一个数和第二个数都是1。斐波那契数列的前几项为:1,1,2,3,5,8,13,21,34,…。计算斐波那契数列常用…

    编程 2025-04-28
  • t3.js:一个全能的JavaScript动态文本替换工具

    t3.js是一个非常流行的JavaScript动态文本替换工具,它是一个轻量级库,能够很容易地实现文本内容的递增、递减、替换、切换以及其他各种操作。在本文中,我们将从多个方面探讨t…

    编程 2025-04-28
  • 时间戳秒级可以用int吗

    时间戳是指从某个固定的时间点开始计算的已经过去的时间。在计算机领域,时间戳通常使用秒级或毫秒级来表示。在实际使用中,我们经常会遇到需要将时间戳转换为整数类型的情况。那么,时间戳秒级…

    编程 2025-04-28
  • 如何在ACM竞赛中优化开发时间

    ACM竞赛旨在提高程序员的算法能力和解决问题的实力,然而在比赛中优化开发时间同样至关重要。 一、规划赛前准备 1、提前熟悉比赛规则和题目类型,了解常见算法、数据结构和快速编写代码的…

    编程 2025-04-28
  • 使用JavaScript日期函数掌握时间

    在本文中,我们将深入探讨JavaScript日期函数,并且从多个视角介绍其应用方法和重要性。 一、日期的基本表示与获取 在JavaScript中,使用Date对象来表示日期和时间,…

    编程 2025-04-28

发表回复

登录后才能评论