Javascript中的Date()类型

首先在学习Date()类型之前,我们需要了解一些关于Date的知识。

标准时间

UTC:世界协调时间(UTC)又称世界统一时间,世界标准时间,国际协调时间,全称Coordinated Universal Time,是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统 。

关于日期时间的字符串格式

ECMAScript定义了一个基于简化的ISO8601扩展格式的日期时间的字符串互换格式。
日期时间完整格式: YYYY-MM-DDTHH:mm:ss.sssZ(注意:前置0不能省略,否则在完整格式的情况下会报错).
准确的格式如下所示:

YYYY        公历中年的十进制数字,如果这个参数值在0-99之间,则向它加上1900
-           在字符串中直接以“-”(破折号)出现两次
MM          一年中的月份,从01(一月)到12(十二月)
DD          月份中的日期,从01到31
T           在字符串中直接以“T”出现,用来表明时间元素的开始
HH          用两个十进制数字表示的,自午夜0点以来的小时数
:           在字符串中直接以“:”(冒号)出现两次
mm          是用两个十进制数字表示的,自小时开始以来的分钟数
ss          是用两个十进制数字表示的,自分开始以来的秒数
.           在字符串中直接以“.”(点)出现
sss         是用三个十进制数字表示的,自秒开始以来的毫秒数
Z           是时区偏移量,由(“Z”(指UTC)或“+”或“-”)和后面跟着的时间表达式hh:mm组成

只表示日期的格式: YYYY 或 YYYY-MM 或 YYYY-MM-DD
值得注意的是:所有数字必须是10进制的。如果缺少MM或DD字段,用“01”作为它们的值。如果缺少mm或ss字段,用“00”作为它们的值,对于缺少的sss用“000”作为它的值。对于缺少的时区偏移量用“Z”。

日期的Date对象

Javascript中的Date类型是在Java中的java.util.Date类的基础上构建的。因此,Date类型使用了UTC(国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。在这种存储条件下,Date类型能保存的日期能够精确到1970年1月1日之前或之后的100000000年。

创建一个日期的对象:

var date = new Date();

Date提供的静态方法

Date一共提供了3中静态的方法,分别是Date.now()方法,Date.parse()方法,和Date.UTC()方法。这些方法通过Date()构造函数本身调用,而不是通过Date实例对象。

1.Date.now()方法:

Date.now()方法是用来计算当前距离1970年1月1日零时的毫秒数是多少,这个方法一般可以用来计算一段程序所运行的时间,例如:

    function f() {
        var sum = 0;
        for (var i=0;i<10000;i++){
            sum += i;
        }
        console.log(sum);                        //49995000
    }
    var start = Date.now();
    f();
    var end = Date.now();
    var time = end - start;
    console.log(time);                           //1  -----表示了该段程序运行的时间是1毫秒

2.Date.parse()方法:
该方法用于解析一个日期字符串,参数是一个包含待解析的日期和时间的字符串,返回从1970年1月1日0点到给定日期的毫秒数。
该方法会根据日期时间字符串格式规则来解析字符串的格式,除了标准格式外,以下格式也支持。如果字符串无法识别,将返回NaN

1、‘月/日/年’ 如6/13/2004

2、‘月 日,年’ 如January 12,2004或Jan 12,2004

3、‘星期 月 日 年 时:分:秒 时区’ Tue May 25 2004 00:00:00 GMT-0700
  
注意:浏览器不支持不表示日期只表示时间的字符串格式。

console.log(Date.parse('6/13/2004'));//1087056000000
console.log(Date.parse('January 12,2004'));//1073836800000
console.log(Date.parse('Tue May 25 2004 00:00:00 GMT-0700'));//1085468400000
console.log(Date.parse('2004-05-25T00:00:00'));//1085443200000
console.log(Date.parse('2016'));//1451606400000
console.log(Date.parse('T00:00:00'));//NaN
console.log(Date.parse());//NaN

注意:在ECMAScript5中,如果使用标准的日期时间字符串格式规则的字符串中,数学前有前置0,则会解析为UTC时间,时间没有前置0,则会解析为本地时间。其他情况一般都会解析为本地时间。

console.log(Date.parse('7/12/2016'));//1468252800000
console.log(Date.parse('2016-7-12'));//1468252800000
console.log(Date.parse('2016-07-12'));//1468281600000

3.Date.UTC()方法:
Date.UTC()同样返回给定日期的毫秒数,但其参数并不是一个字符串,而是分别代表年、月、日、时、分、秒、毫秒的数字参数
Date.UTC(year,month,day,hours,minutes,seconds,ms),year和month参数是固定的,其余参数可选。
该函数有7个形参,所以length为7.

console.log(Date.UTC.length);				//7

该方法使用的是UTC的时间,而不是本地的时间。

console.log(Date.UTC(1970));//NaN
console.log(Date.UTC(1970,0));//0
console.log(Date.UTC(1970,0,2));//86400000
console.log(Date.UTC(1970,0,1,1));//3600000
console.log(Date.UTC(1970,0,1,1,59));//714000
console.log(Date.UTC(1970,0,1,1,59,30));//717000

日期的格式化方法

日期的格式化方法主要包括5种,分别是:toDateString()方法,toTimeString()方法,toLocaleDateString()方法,toLocaleTimeString()方法,toUTCString()方法。
这些方法的输出是根据浏览器而异的,没有哪一个方法能够用来在用户界面中显示一致的信息。

toDateString():-------------------------以特定于实现的格式显示星期几,月,日,和年;
toTimeString():-------------------------以特定于实现的格式显示时,分,秒,和时区;
toLocaleDateString():----------------以特定于地区的格式显示星期几,月,日,和年;
toLocaleTimeString():----------------以特定于实现的格式显示时,分,和秒;
toUTCString():-------------------------以特定于实现的格式完整的UTC日期

以下是这5中方法的显示结果:

    var now = new Date();

    console.log(now.toDateString())
    console.log(now.toTimeString())
    console.log(now.toLocaleDateString())
    console.log(now.toLocaleTimeString())
    console.log(now.toUTCString())

Mon Aug 26 2019
22:25:01 GMT+0800 (中国标准时间)
2019/8/26
下午10:25:01
Mon, 26 Aug 2019 14:25:01 GMT

日期和时间的组件方法

这里面主要由两类方法组成:get类和set类
在我们的实际操作中,主要以获取时间为主,下面我将用代码介绍一些方法,其余方法参照JS文档。

    // 创建实例对象
    var dt = new Date();
    //获取年份
    console.log(dt.getFullYear());
    //获取月份=======从0开始,真实的月份是需要加一的。
    console.log(dt.getMonth());
    //获取日期
    console.log(dt.getDay());
    //获取小时
    console.log(dt.getHours());
    //获取分钟
    console.log(dt.getMinutes());
    //获取秒
    console.log(dt.getSeconds());
    //获取星期
    console.log(dt.getMilliseconds());

以上就是Date()类型的一些基本的方法,如果想要更深入的了解,请查看JS文档,并且手动敲一下例子更好的理解一下~

参考文档:https://www.cnblogs.com/xiaohuochai/p/5663102.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值