zoukankan      html  css  js  c++  java
  • 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>

     

  • 相关阅读:
    如何启用EMGrid/Cloud Control的HTTP而非HTTPS协议登陆
    Oracle Enterprise Manager 12c 新特性:实时RealTime Addm
    php 面向对象三大特征
    C++ 运算符重载
    C++面向对象_复制构造函数+构造函数+析构函数+static+友元
    位运算符和位运算
    SqlHelper.class.php
    C++ 流
    C++ 虚函数与多态
    C++ 继承与派生
  • 原文地址:https://www.cnblogs.com/Yunya-Cnblogs/p/13388875.html
Copyright © 2011-2022 走看看