Date类型

ECMAScript 中的Date类型是在早期Java中的java.util.Date 类基础上构建的。为此,Date类型使用处UTC(Coordinated Universal Time,国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或者之后的100 000 000年。
	要创建一个日期对象,使用new操作符和Date构造函数即可,如下:
<script>
    let now = new Date();
    console.log(now);
    //Tue Dec 24 2019 09:34:51 GMT+0800 (中国标准时间)
    //调用不传参的情况下,自动获得当前的日期和时间
</script>
如果想要根据特定的日期和时间来创建日期对象,必须传入表示该日期的毫秒数。不过为了简化这一计算过程,js提供了两个方法:Date.parse()和Date.UTC()。
  • Date.parse():接收一个表示日期的字符串参数
  • Date.UTC():参数分别是年份、从0开始的月份(即0表示1月)、月中的哪一天、小时数、分钟、秒以及毫秒。在这些参数中,前两个是必填的。如果没有天数,默认为1,其它的默认为0。
//Date.parse():
    //为2004年5月25日创建一个时间对象
    var date = new Date(Date.parse('May 25, 2004'));
    console.log(date);
    //Tue May 25 2004 00:00:00 GMT+0800 
    //如果传入的参数不能表示日期,则返回NaN

    //下面和上面的是一样的,为简写方式 
    var date = new Date('May 25, 2004');
    console.log(date);
    //Tue May 25 2004 00:00:00 GMT+0800 

    //Date.UTC():
    //2000年1月1日午夜0时
    var date = new Date(Date.UTC(2000,0));
    console.log(date);
    //Sat Jan 01 2000 00:00:00 GMT+0800
    //2005年5月5日下午5:55:55
    var date = new Date(2005,4,5,17,55,55);
    console.log(date);
    //Thu May 05 2005 17:55:55 GMT+0800 (中国标准时间)
Date.now()
var start = Date.now();
    console.log(start);
    //1577153091488  现在时间的毫秒数
继承的方法
Date类型也重写了toLocaleString()、toString()和valueOf()方法:只不过这些方法返回值与其他类型是不同的,不同浏览器表现也会不同,下面看代码,我用的是谷歌,小伙伴们可以尝试别的浏览器:
var now = new Date();
    console.log(now);//Tue Dec 24 2019 10:10:48 GMT+0800 (中国标准时间)
    console.log(now.toLocaleString());//2019/12/24 上午10:10:48
    console.log(now.toString());//Tue Dec 24 2019 10:10:48 GMT+0800 (中国标准时间)
    console.log(now.valueOf());//1577153448487
日期也可以作比较,如:
var date1 = new Date(2007,0,1);
    var date2 = new Date(2007,1,1);
    console.log(date1>date2);//false
    console.log(date2>date1);//true
日期的格式化方法
var date = new Date();
    console.log(date.toDateString());//Tue Dec 24 2019
    console.log(date.toTimeString());//10:17:38 GMT+0800 (中国标准时间)
    console.log(date.toLocaleDateString());//2019/12/24
    console.log(date.toLocaleTimeString());//上午10:17:38
    console.log(date.toUTCString());//Tue, 24 Dec 2019 02:36:04 GMT
    console.log(date.toLocaleString());//2019/12/24 上午10:36:04
    console.log(date.toString());//Tue Dec 24 2019 10:36:04 GMT+0800 (中国标准时间)
常用的日期/时间组件方法
var date = new Date();
    console.log('年:',date.getFullYear());//年: 2019
    console.log('月:',date.getMonth());//月: 11  月份默认从0开始的
    console.log('日:',date.getDay());//日: 2
    console.log('时:',date.getHours());//时: 14
    console.log('分:',date.getMinutes());//分: 28
    console.log('秒:',date.getSeconds());//秒: 22
    console.log('毫秒:',date.getMilliseconds());//毫秒: 501
    console.log('毫秒数:',date.getTime());//获取毫秒数
    console.log('毫秒数:',date.setTime(毫秒值));//以毫秒设置时间