1. 了解时间

1.1 格里尼治时间(GTM)

是英国郊区格林尼治天文台的时间,因为地球自转的问题,每个时区的时间是不一样的。格林尼治天文台所处的是经度为零的地方,世界上一些重大的时间都是采用的格林尼治时间。

1.2 世界标准时间(UTC)

世界时间1970年1月1日0时

2. Date

  1. JS中的Date类型是由早期Java.util.Date类型基础之上构建的,所以保存的是距离1970110时的毫秒数来存储时间的。

2.1 创建

2.1.1 用Date()函数创建(字符串类型)

  var nowDate = Date();<br />      得到是当前时间<br />      是字符串类型
var nowDate = Date();
console.log(nowDate); //Thu Mar 04 2021 21:11:35 GMT+0800 (中国标准时间)
console.log(typeof nowDate); //string

2.1.2 使用构造函数创建(对象类型)

1. 不使用参数,得到当前时间

var nowDate = new Date()

var nowDate = new Date();
console.log(typeof nowDate); //object

2. 参数是一个表示时间的字符串

//参数是一个表示时间的字符串
//月、日、年、时、分、秒
//2021-03-04 21:17:09 == 2021-3-4 21:17:9 == 2021/3/4 21:17:9
var date = new Date("2021/3/4 21:17:9");  //Thu Mar 04 2021 21:17:09 GMT+0800 (中国标准时间)
console.log(date);
//省略时、分、秒 默认为0 (默认是标准时间)
date = new Date("2021/03/04");
console.log(date);  //Thu Mar 04 2021 00:00:00 GMT+0800 (中国标准时间)
//省略日默认为1日
date = new Date("2021/03");
console.log(date); //Mon Mar 01 2021 00:00:00 GMT+0800 (中国标准时间)
//省略月默认为1月
date = new Date("2021");
console.log(date); //Fri Jan 01 2021 08:00:00 GMT+0800 (中国标准时间)

3. 参数是年、月、日、时、分、秒、毫秒

  • 年是必须写的,月是从0开始的,日是从1开始的
  • 如果月份超过11,则年份自动增加
  • 如果日期超过当月应有的天数,则月份自动增加
  • 时、分、秒、毫秒都是如此
    //参数是年、月、日、时、分、秒、毫秒
    var date = new Date(2021,03,04,21,26,44);  //Sun Apr 04 2021 21:26:44 GMT+0800 (中国标准时间)
    console.log(date);
    

    4. 参数是一个数字

    得到的是距离1970年1月1日0时参数毫秒之后的时间

    注意:对应北京时间需要加8小时

//参数是一个数字,对应的是距离1970年1月1日0时的毫秒
var date = new Date(1583328720603);  //Wed Mar 04 2020 21:32:00 GMT+0800 (中国标准时间)
console.log(date);

3. Date对象的方法

3.1 Get

3.1.1 获取当前时间

  var date = new Date();

3.1.2 获取年

  date.getFullYear();

3.1.3 获取月

  date.getMonth();

3.1.4 获取日

  date.getDate();

3.1.5 获取星期

  date.getDay();

3.1.6 获取时

  date.getHours();

3.1.7 获取分

  date.getMinutes();

3.1.8 获取秒

  date.getSeconds();

3.1.9 获取毫秒

  date.getMilliseconds();

3.1.10 获取当前时间距离1970年1月1日0时的毫秒数

  date.getTime();

3.2 Set

设置年

  date.setFullYear(2017);

设置月

  date.setMonth(10);<br />    月是从0开始,如果月大于等于12,年份增加

设置日

  date.setDate(10);<br />    如果日大于当月应有的天数,月增加

设置星期

  注意:星期一般不设置

设置时

  date.setHours(08);<br />    如果时大于23,日增加

设置分钟

  date.setMinutes(54);<br />    如果分钟大于59,时增加

设置秒

  date.setSeconds(55);<br />    如果秒大于59,分增加

设置毫秒

  date.setMilliseconds(666);<br />    如果毫秒大于999,秒增加<br />  设置距离1970年1月1日0时毫秒数<br />      date.setTime(1507703240504);

3.3 转字符串

3.3.1 包含年月日时分秒

  date.toLocalString();

3.3.2 包含年月日

  date.toLocalDateString();

3.3.3 包含时分秒

  date.toLocalTimeString();   

4.Date对象间的运算

两个时间对象相减,得到的是两个对象间相差的毫秒数