JavaScript Date

Date对象的作用

  JavaScript中,Date对象提供了一系列对时间的操作。

  由于方法实在是太多,所以这里不一一例举,而是只拿出常用的。

属性一览

属性描述
constructor 返回对创建该对象的函数的引用
prototype 允许向对象添加属性和方法

方法一览

方法描述
Date() 返回当日的日期和时间
getDate() 根据本地时从Date对象返回一个月中的某一天(1 ~ 31)
getDay() 根据本地时从Date对象返回一周中的某一天(1 ~ 6)
getFullYear() 根据本地时从 Date 对象以四位数字返回年份
getHours() 根据本地时返回 Date 对象的小时 (0 ~ 23)
getMilliseconds() 根据本地时返回 Date 对象的毫秒(0 ~ 999)
getMinutes() 根据本地时返回 Date 对象的分钟 (0 ~ 59)
getMonth() 根据本地时从Date对象返回月份(1 ~ 11)
getSeconds() 根据本地时返回 Date 对象的秒数 (0 ~ 59)
getTime() 根据本地时返回 1970 年 1 月 1 日至今的毫秒数
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)
getYear() 弃用,返回在指定的日期根据当地时间。使用getFullYear()代替。
setDate() 根据本地时设置 Date 对象中月的某一天 (1 ~ 31)
setFullYear() 根据本地时设置 Date 对象中的年份(四位数字)
setHours() 根据本地时设置 Date 对象中的小时 (0 ~ 23)
setMilliseconds() 根据本地时设置 Date 对象中的毫秒 (0 ~ 999)
setMinutes() 根据本地时设置 Date 对象中的分钟 (0 ~ 59)
setMonth() 根据本地时设置 Date 对象中月份 (0 ~ 11)
setSeconds() 根据本地时设置 Date 对象中的秒钟 (0 ~ 59)
setTime() 根据本地时以毫秒设置 Date 对象
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)
setYear() 弃用,设置为指定的日期根据当地时间。使用 setFullYear() 代替。
toDateString() 把 Date 对象的日期部分转换为字符串
toGMTString() 弃用,将日期转换为一个字符串,使用互联网格林尼治时间约定。使用 toUTCString() 代替。
toLocalDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串
toLocalFormat() 将日期转换为一个字符串,使用格式化字符串。
toLocalString() 根据本地时间格式,把 Date 对象转换为字符串
toLocalTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串
toSource() 返回一个字符串代表一个等价的日期对象的源码,您可以使用这个值来创建一个新的对象
toString() 把 Date 对象转换为字符串
toTimeString() 把 Date 对象的时间部分转换为字符串
toUCTString() 根据世界时,把 Date 对象转换为字符串
valueOf() 返回 Date 对象的原始值

静态方法

  所谓静态方法即不用传值的方法。

方法描述
Date.parse() 返回 1970 年 1 月 1 日午夜到指定日期(字符串)的毫秒数
Date.UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数

声明日期

  以下例举的是常用的声明日期的方式。

<script>"use strict";

        // 当前日期和时间 
        console.log(new Date());   // Tue Jul 28 2020 06:27:54 GMT+0800 (中国标准时间)
// 获取时间戳,时间戳的意思是从1970年1月1日凌晨8点0分0秒开始距离现在所经历过的时间,单位是毫秒。
        console.log((new Date()) * 1);   // 1595889198251
// 获取一个字符串格式时间
        console.log(new Date("2010-11-12"));  // Fri Nov 12 2010 08:00:00 GMT+0800 (中国标准时间)
// 填入参数,获取时间    年月日时分秒毫秒
        console.log(new Date(2018, 4, 23, 12, 0, 12, 13));  // Wed May 23 2018 12:00:12 GMT+0800 (中国标准时间)
//直接使用函数获取当前时间
        console.log(Date());
        console.log(typeof Date()); // string
//获取当前时间戳单位毫秒
        console.log(Date.now()); // 1595889198254
</script>

执行时间

  常用且通用的一种计算方法。

<script>"use strict";
        // 开始时间减去结束时间即可
        const start = Date.now();

        for (let i = 0; i < 2000000; i++) { }

        const end = Date.now();
        console.log(end - start);

</script>

  控制台测试,这是Js独特的方法,原理也是开始时间减去结束时间。

<script>"use strict";

        console.time("testFor");

        for (let i = 0; i < 20000000; i++) { }

        console.timeEnd("testFor");  //  testFor: 13.82177734375ms
</script>

类型转换

  将日期转为数值类型就是转为时间戳格式,单位是毫秒。

<script>"use strict";

        let time = new Date();
        console.log(time * 1); // 时间戳    1595889846353

        console.log(Number(time));  // number类型时间戳  1595889846353  

        console.log(time.valueOf()); // 时间戳  1595889846353

        console.log(time.getTime());  //  时间戳  1595889846353
</script>

  有时后台提供的日期为时间戳格式,下面是将时间戳转换为标准日期的方法

<script>"use strict";

        const param = [1990, 2, 22, 13, 22, 19];

        const date = new Date(...param);  //  数组打散,相当于填参数了。 列表中的参数一一对应形参年月日时分秒毫秒

        const timestamp = date.getTime();  //  获取时间戳

        console.log(timestamp);  // 638083339000
        console.log(new Date(timestamp));  // Thu Mar 22 1990 13:22:19 GMT+0800 (中国标准时间)
</script>

日期定位

  获取到当前日期,并定位到后5天。

<script>"use strict";

        let time = new Date();
        time.setDate(time.getDate() + 5);
        console.log(time);  // Sun Aug 02 2020 06:55:43 GMT+0800 (中国标准时间)
        
</script>

时间格式化

  有时候我们会觉得Js提供给我们的格式不太好用,这个时候可以写一个函数自定义格式。

<script>// format定义了默认参数
        function dateFormat(date, format = "YYYY-MM-DD HH:mm:ss") {

                const config = {
                        YYYY: date.getFullYear(),  // 获取年份
                        MM: date.getMonth() + 1,   //  获取月份,月份+1是因为js中的月份是0-11
                        DD: date.getDate(),  // 获取天数
                        HH: date.getHours(),  // 获取小时
                        mm: date.getMinutes(),  // 获取分
                        ss: date.getSeconds()  // 获取秒
                };
                for (const key in config) {
                        format = format.replace(key, config[key]);
                }
                return format;
        }
        console.log(dateFormat(new Date(), "YYYY年MM月DD日"));  // 2020年7月28日
</script>

moment.js

  Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。

  更多使用方法请访问中文官网 http://momentjs.cn 或 英文官网 https://momentjs.com

<script src="https://cdn.bootcss.com/moment.js/2.24.0/moment.min.js"></script>

  获取当前时间

<script>

        console.log(moment().format("YYYY-MM-DD HH:mm:ss"));

</script>

  设置时间

<script>

        console.log(moment("2020-02-18 09:22:15").format("YYYY-MM-DD HH:mm:ss"));

</script>

  十天后的日期

<script>

        console.log(moment().add(10, "days").format("YYYY-MM-DD hh:mm:ss"));

</script>

 

原文地址:https://www.cnblogs.com/Yunya-Cnblogs/p/13388875.html