JavaScript Date对象详解 以及 时间戳和时间的相互转换

简介: JavaScript Date对象详解 以及 时间戳和时间的相互转换

一、Date对象详解

1.Date对象

Date 对象用于处理日期与时间。

2.创建Date对象

let date = new Date();

3.Date对象属性

属性 描述
constuctor 返回对创建此对象的Date函数的引用
prototype 使您有能力向对象添加属性和方法

4.Date对象方法

这个是我今天的日期

(1)getDate() 返回一个月中的某一天(1-31)

            let date = new Date();
            console.log(date.getDate());

(2)getDay() 返回一周中的某一天(0-6)

            let date = new Date();
            console.log(date.getDay());

(3)getFullYear() 返回年份

            let date = new Date();
            console.log(date.getFullYear());

(4)getHours() 返回Date对象的小时(0-23)


            let date = new Date();
            console.log(date.getHours());

(5)getMillseconds() 返回Date对象的毫秒数(0-999)

            let date = new Date();
            console.log(date.getMilliseconds());

(6)getMinutes() 返回Date对象的月份(0-11)因为月份返回0-11,因此一般获取月份都要  + 1

            let date = new Date();
            console.log(date.getMonth());

(7)getSeconds() 返回Date对象的秒数(0-59)

1. let date = new Date();
2. console.log(date.getSeconds());

(8)getTime() 返回1970年1月一日至今的毫秒数,即时间戳

1. let date = new Date();
2. console.log(date.getTime());

这些就是我们经常使用的Date对象的方法,其他方法可参考菜鸟教程

JavaScript Date 对象 | 菜鸟教程

JavaScript Date 对象 Date 对象 Date 对象用于处理日期与时间。 创建 Date 对象: new Date() 以下四种方法同样可以创建 Date 对象: var d = new Date(); var d = new Date(milliseconds); // 参数为毫秒 var d = new Date(dateString); var d = new Date(year, month, day, h..

https://www.runoob.com/jsref/jsref-obj-date.html

5.Date对象的应用(节流函数时间戳写法)

Date.now()  相当于 date.getTIme() 获取时间戳

            function throttled(fn, delay) {
                let oldTime = Date.now();
                return function (...args) {
                    let newTIme = Date.now();
                    if (newTIme - oldTime >= delay) {
                        fn.apply(this, args);
                        oldTime = Date.now();
                    }
                };
            }

二、时间戳和时间的相互转换

1.时间转换为时间戳

            // Date.parse()不推荐这种写法,毫秒级别的数值直接被转化为000
            let date1 = Date.parse(new Date());
            // valueOf()函数返回指定对象的原始值获得准确的时间数值
            let date2 = new Date().valueOf();
            // getTime()通过原型方法直接获得当前时间的毫秒数
            let date3 = new Date().getTime();
            // Number() 将时间转化为一个number类型的数值
            let date4 = Number(new Date());
            console.log(date1);
            console.log(date2);
            console.log(date3);
            console.log(date4);

打印结果如下

2.时间戳转换为时间

(1)自己手写转换函数利用 Date对象的方法

            // 时间戳转换成时间格式
            var formatDate = function (date) {
                // 如果传入的时间戳为10位需*1000,时间戳为13位的话不需乘1000
                date = new Date(date);
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                var d = date.getDate();
                var h = date.getHours();
                var m1 = date.getMinutes();
                var s = date.getSeconds();
                // 过滤格式
                m = m < 10 ? '0' + m : m;
                d = d < 10 ? '0' + d : d;
                h = h < 10 ? '0' + h : h;
                m1 = m1 < 10 ? '0' + m1 : m1;
                s = s < 10 ? '0' + s : s;
                // 拼接时间格式
                return y + '-' + m + '-' + d + ' ' + h + ':' + m1 + ':' + s;
            };
            console.log(formatDate(1685671570448));

另一种写法,可以根据 now.toTimeString().substr(0, 8) 获取后面的时分秒格式,更加简便

            // 时间戳转换成时间格式
            var formatDate = function (date) {
                // 如果传入的时间戳为10位需*1000,时间戳为13位的话不需乘1000
                date = new Date(date);
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                var d = date.getDate();
                // 过滤格式
                m = m < 10 ? '0' + m : m;
                d = d < 10 ? '0' + d : d;
                return y + '-' + m + '-' + d + ' ' + date.toTimeString().substr(0, 8);
            };
            console.log(formatDate(1685671570448));

输出结果如下

(2)可以使用replace方法进行转置

            function getLocalTime(nS) {
                // parseInt可解析一个字符串,并返回一个整数
                // toLocalString()方法可根据本地时间把date对象转换为字符串,并返回结果
                // replace利用正则进行匹配替换
                return new Date(parseInt(nS)).toLocaleString().replace(/:\d{1,2}$/, ' ');
            }
            console.log(getLocalTime(1685671570448));

输出结果如下

目录
相关文章
|
2月前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
2月前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
2月前
|
JSON 前端开发 JavaScript
JavaScript中对象的数据拷贝
本文介绍了JavaScript中对象数据拷贝的问题及解决方案。作者首先解释了对象赋值时地址共享导致的值同步变化现象,随后提供了五种解决方法:手动复制、`Object.assign`、扩展运算符、`JSON.stringify`与`JSON.parse`组合以及自定义深拷贝函数。每种方法都有其适用场景和局限性,文章最后鼓励读者关注作者以获取更多前端知识分享。
28 1
JavaScript中对象的数据拷贝
|
2月前
|
JavaScript 前端开发
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
|
2月前
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
50 1
|
2月前
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
|
2月前
|
前端开发 JavaScript UED
"前端小技巧大揭秘:JS如何将后台时间戳秒变亲切小时前、分钟前,让用户秒懂,提升互动体验!"
【10月更文挑战第23天】在Web开发中,将后台返回的时间戳转换为“小时前”、“分钟前”、“刚刚”等友好的时间描述是常见需求。本文介绍如何用JavaScript实现这一功能,通过计算当前时间和时间戳的差值,返回相应的描述,提升用户体验。
46 1
|
3月前
|
JavaScript 前端开发
JavaScript Date
【10月更文挑战第06天】
64 18
|
3月前
|
存储 JavaScript 前端开发
JavaScript 对象的概念
JavaScript 对象的概念
51 4
|
3月前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
54 1