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

 更新时间:2024年01月20日 10:29:23   作者:~black-  
这篇文章主要介绍了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)

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

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

            let date = new Date();
            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));

输出结果如下

到此这篇关于JavaScript Date对象详解及时间戳和时间的相互转换的文章就介绍到这了,更多相关JavaScript Date对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • jQuery随便控制任意div隐藏的方法

    jQuery随便控制任意div隐藏的方法

    这篇文章介绍了jQuery随便控制任意div隐藏的方法,有需要的朋友可以参考一下
    2013-06-06
  • attachEvent的使用方法与传递参数[IE|firefox]

    attachEvent的使用方法与传递参数[IE|firefox]

    attachEvent的使用方法与传递参数[IE|firefox]...
    2007-05-05
  • JavaScript工具库Lodash的使用方法详解

    JavaScript工具库Lodash的使用方法详解

    Lodash是一个可以提高开发者效率、提高原生JS方法性能的JavaScript第三方实用工具库这篇文章主要介绍了JavaScript工具库Lodash使用方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-10-10
  • Webpack实战加载SVG的方法

    Webpack实战加载SVG的方法

    本篇文章主要介绍了Webpack实战加载SVG的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • javascript数组的定义及操作实例

    javascript数组的定义及操作实例

    在文章里小编给大家整理的是关于javascript数组的定义及操作的相关知识点,需要的朋友们学习下。
    2019-11-11
  • JavaScript常用脚本汇总(一)

    JavaScript常用脚本汇总(一)

    这篇文章主要介绍了JavaScript常用脚本汇总系列的第一篇,给大家分享的是jquery限制文本框只能输入数字、封装DOMContentLoaded事件、用原生JS对AJAX做简单封装、跨域请求之JSONP、千分位格式化,有需要的小伙伴们参考下吧。
    2015-03-03
  • 如何提高Dom访问速度

    如何提高Dom访问速度

    在浏览器中对于Dom的操作和普通的脚本的操作处于两个不同的dll中,两个dll的交互是比较耗时的,优化对Dom的操作可以提高脚本的执行速度。本文是对如何优化的一些总结。下面跟着小编一起来看下吧
    2017-01-01
  • JavaScript 动态生成方法的例子

    JavaScript 动态生成方法的例子

    动态生成方法的例子,这些方法在新对象实例化的时候创建
    2009-07-07
  • JavaScript图片上传并预览的完整实例

    JavaScript图片上传并预览的完整实例

    上传是个老生常谈的话题了,多数情况下各位想必用的是uplodify,webUploader之类的插件,这篇文章主要给大家介绍了关于JavaScript图片上传并预览的相关资料,需要的朋友可以参考下
    2022-01-01
  • JavaScript JSON数据处理全集(小结)

    JavaScript JSON数据处理全集(小结)

    这篇文章主要介绍了JavaScript JSON数据处理全集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论