JavaScript引用类型---Date

SuRuiGit

一、创建Date实例对象

1.new Date();依据系统设置的当前时间来创建一个Date对象

    let today = new Date();
    console.log(today); //Thu Jun 14 2018 14:51:00 GMT+0800 (CST)

2.new Date(value);

参数:value  代表自1970年1月1日00:00:00 (世界标准时间) 起经过的毫秒数

    let day = new Date(1528959690000);
    console.log(day); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)

3.new Date(dateString);

参数:dateString  表示日期的字符串值。该字符串应该能被 Date.parse() 方法识别

    let day1 = new Date("2018-06-14T07:01:30.000Z");
    console.log(day1); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)

4.new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);

参数:

  • year  代表年份的整数值,为了避免2000年问题最好指定4位数的年份; 使用 1998, 而不要用 98
  • month  代表月份的整数值从0(1月)到11(12月)
  • day  代表一个月中的第几天的整数值,从1开始
  • hour  代表一天中的小时数的整数值 (24小时制)
  • minute  分钟数
  • second  秒数
  • millisecond  表示时间的毫秒部分的整数值
    let day2 = new Date(2018,5,14);
    console.log(day2); //Thu Jun 14 2018 00:00:00 GMT+0800 (CST)

    let day3 = new Date(2018,5,14,15,1,30);
    console.log(day3); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)

二、Date静态属性

1.Date.prototype 表示Date构造函数的原型

Date实例继承自Date.prototype,你可以使用构造函数的原型对象向所有Date实例添加属性或方法

三、Date静态方法

1.Date.UTC() 方法返回从1970-1-1 00:00:00 UTC到指定日期的的毫秒数

语法:Date.UTC(year,month[,date[,hrs[,min[,sec[,ms]]]]])
参数:

  • year  1900 年后的某一年份
  • month  0 到 11 之间的一个整数,表示月份
  • date  1 到 31 之间的一个整数,表示某月当中的第几天
  • hrs  0 到 23 之间的一个整数,表示小时
  • min  0 到 59 之间的一个整数,表示分钟
  • sec  0 到 59 之间的一个整数,表示秒
  • ms  0 到 999 之间的一个整数,表示毫秒
    let utcDate = new Date(Date.UTC(2018, 5, 14, 7, 1, 30));
    console.log(Date.UTC(2018, 5, 14, 7, 1, 30)); //1528959690000
    console.log(utcDate); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)

2.Date.now() 方法返回自1970年1月1日 00:00:00 UTC到当前时间的毫秒数

    let nowDate = new Date(Date.now());
    console.log(nowDate); //Fri Jun 15 2018 16:31:05 GMT+0800 (CST)
    console.log(Date.now()); //1529051465358

3.Date.parse()方法返回一个表示从1970-1-1 00:00:00 UTC到给定日期字符串所表示时间的毫秒数的数值

语法:Date.parse(dateString)

参数:dateString   一个符合 RFC2822 或 ISO 8601 日期格式的字符串

返回值:返回一个从1970-1-1 00:00:00 UTC到给定日期字符串所表示时间的毫秒数的数值。如果参数不能解析为一个有效的日期,则返回NaN

    let time = Date.parse('2018-06-14T07:01:30.000Z');
    console.log(time);// 1528959690000

四、Date实例方法

1.年

setFullYear() 方法根据本地时间为一个日期对象设置年份

语法:dateObj.setFullYear(yearValue[, monthValue[, dayValue]])
参数:

  • yearValue  指定年份的整数值,例如1995。
  • monthValue  一个0到11之间的整数值,表示从一月到十二月。
  • dayValue  一个1到31之间的整数值,表示月份中的第几天。如果你指定了 dayValue 参数,就必须同时指定monthValue
getFullYear() 方法根据本地时间返回指定日期的年份

语法:dateObj.getFullYear()
返回值:根据当地时间,返回一个对应于给定日期的年份数字

    let date1 = new Date(1528959690000);
    console.log(date1); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date1.setFullYear(2017)); //1497423690000
    console.log(date1.getFullYear()); //2017
setUTCFullYear() 方法根据世界标准时间为一个具体日期设置年份

语法:dateObj.setUTCFullYear(yearValue[, monthValue[, dayValue]])
参数:

  • yearValue  指定年份整数值,例如,1995
  • monthValue  可选,指定一个0-11之间的整数值,代表从一月到十二月
  • dayValue  可选,指定一个1-31之间的整数值,代表月份中的第几天,如果你指定了dayValue参数,那么你必须指定monthValue参数
getUTCFullYear() 以世界时为标准,返回一个指定的日期对象的年份

语法:dateObj.getUTCFullYear()
返回值:返回一个绝对数值,符合 Year-2000 标准,例如 1995

let day1 = new Date(1528959690000);
console.log(day1.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
console.log(day1.setUTCFullYear(2017)); //1497423690000
console.log(day1.getUTCFullYear()); //2017

2.月

setMonth() 方法根据本地时间为一个设置年份的日期对象设置月份

语法:dateObj.setMonth(monthValue[, dayValue])
参数:

  • monthValue  介于 0 到 11 之间的整数(表示一月到十二月)
  • dayValue  从 1 到 31 之间的整数,表示月份中的第几天
getMonth() 方法根据本地时间,返回一个指定的日期对象的月份

语法:dateObj.getMonth()
返回值:返回一个0 到 11的整数值: 0 代表一月份,1 代表二月份, 2 代表三月份,依次类推

    let date2 = new Date(1528959690000);
    console.log(date2); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date2.setMonth(4)); //1526281290000
    console.log(date2.getMonth()); //4
setUTCMonth()方法根据通用的时间来设置一个准确的月份

语法:dateObj.setUTCMonth(monthValue[, dayValue])
参数:

  • monthValue  一个0-11的整数,代表1月到12月
  • dayValue  可选参数,一个1-31的整数,代表一个月的天数
getUTCMonth方法以世界时为标准,返回一个指定的日期对象的月份,它是从 0 开始计数的(0 代表一年的第一个月)

语法:dateObj.getUTCMonth()
返回值:返回一个 0 到 11 的整数,分别对应以下月份:0 代表一月,1 代表二月,2 代表三月,依次类推

    let day2 = new Date(1528959690000);
    console.log(day2.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day2.setUTCMonth(4)); //1526281290000
    console.log(day2.getUTCMonth()); //4

3.日

setDate() 方法根据本地时间来指定一个日期对象的天数

语法:dateObj.setDate(dayValue)
参数:dayValue  一个整数,表示该月的第几天

getDate() 根据本地时间,返回一个指定的日期对象为一个月中的第几天

语法:dateObj.getDate()
返回值:返回一个1 到 31的整数值

    let date3 = new Date(1528959690000);
    console.log(date3); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date3.setDate(21)); //1529564490000
    console.log(date3.getDate()); //21
setUTCDate() 方法就是根据全球时间设置特定date对象的日期

语法:dateObj.setUTCDate(dayValue)
参数:dayValue  一个1-31的整形数字,用来指定日期

getUTCDate() 方法以世界时为标准,返回一个指定的日期对象为一个月中的第几天

语法:dateObj.getUTCDate()
返回值:返回一个 1 到 31 的整数值

    let day3 = new Date(1528959690000);
    console.log(day3.toUTCString()); ////Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day3.setUTCDate(25)); //1529910090000
    console.log(day3.getUTCDate()); //25

4.星期几

getDay() 方法根据本地时间,返回一个具体日期中一周的第几天,0 表示星期天

语法:dateObj.getDay()
返回值:返回一个整数值: 0 代表星期日, 1 代表星期一,2 代表星期二, 依次类推

    let date = new Date(1528959690000);
    console.log(date); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date.getDay()); //4
getUTCDay() 方法以世界时为标准,返回一个指定的日期对象为一星期中的第几天,其中 0 代表星期天

语法:dateObj.getUTCDay()
返回值:返回一个对应一星期中第几天的整数:0 代表星期天,1 代表星期一,2 代表星期二,依次类推

5.时

setHours() 方法根据本地时间为一个日期对象设置小时数

语法:dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
参数:

  • hoursValue  一个 0 到 23 的整数,表示小时
  • minutesValue  一个 0 到 59 的整数,表示分钟
  • secondsValue  一个 0 到 59 的整数,表示秒数,如果指定了 secondsValue 参数,则必须同时指定 minutesValue 参数
  • msValue  一个 0 到 999 的数字,表示微秒数,如果指定了 msValue 参数,则必须同时指定 minutesValue 和 secondsValue 参数
getHours() 方法根据本地时间,返回一个指定的日期对象的小时

语法:dateObj.getHours()
返回值:返回一个0 到 23之间的整数值

    let date4 = new Date(1528959690000);
    console.log(date4); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date4.setHours(11)); //1528945290000
    console.log(date4.getHours()); //11
setUTCHours() 方法就是根据全球时间设置特定date对象的小时数

语法:dateObj.setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
参数:

  • hoursValue  表示小时的整数,取值0到23之间
  • minutesValue  可选参数,表示分钟的整数,取值0到59之间
  • secondsValue  可选参数,表示秒数的整数,取值0到59之间;如果指定了该参数,就要同时指定minutesValue这个参数
  • msValue  可选参数,表示毫秒的整数,取值0到999之间;如果指定了该参数,就要指定minutesValue和secondsValue这两个参数
getUTCHours() 方法以世界时为标准,返回一个指定的日期对象的小时数

语法:dateObj.getUTCHours()
返回值:返回一个 0 到 23 的整数

    let day4 = new Date(1528959690000);
    console.log(day4.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day4.setUTCHours(15)); //1528988490000
    console.log(day4.getUTCHours()); //15

6.分

setMinutes() 方法根据本地时间为一个日期对象设置分钟数

语法:dateObj.setMinutes(minutesValue[, secondsValue[, msValue]])
参数:

  • minutesValue  一个 0 到 59 的整数,表示分钟数。
  • secondsValue  一个 0 到 59 的整数,表示秒数,如果指定了 secondsValue 参数,则必须同时指定 minutesValue 参数。
  • msValue  一个 0 到 999 的数字,表示微秒数,如果指定了 msValue 参数,则必须同时指定 minutesValue和secondsValue 参数
getMinutes() 方法根据本地时间,返回一个指定的日期对象的分钟数

语法:dateObj.getMinutes()
返回值:返回一个0 到 59的整数值

    let date5 = new Date(1528959690000);
    console.log(date5); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date5.setMinutes(30)); //1528961430000
    console.log(date5.getMinutes()); //30
setUTCMinutes()方法会根据根据全球时间来设置指定日期的分钟数

语法:dateObj.setUTCMinutes(minutesValue[, secondsValue[, msValue]])
参数:

  • minutesValue  必填,表示要设置的分钟数,是一个介于0和59之间的整数
  • secondsValue  可选参数,表示要设置的秒数,同样也是一个介于0和59之间的整数,如果你传入了这个参数,那么你就必须要传入minutesValue
  • msValue  可选参数,表示要设置的毫秒数,这是一个介于0和999之间的数字,如果你传入了这个参数,那么你就必须要传入minutesValue和secondsValue
getUTCMinutes() 方法以世界时为标准,返回一个指定的日期对象的分钟数

语法:dateObj.getUTCMinutes()
返回值:返回一个 0 到 59 的整数

    let day5 = new Date(1528959690000);
    console.log(day5.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day5.setUTCMinutes(45)); //1528962330000
    console.log(day5.getUTCMinutes()); //45

7.秒

setSeconds() 方法根据本地时间设置一个日期对象的秒数

语法:dateObj.setSeconds(secondsValue[, msValue])
参数:

  • secondsValue  一个 0 到 59 的整数
  • msValue  一个 0 到 999 的数字,表示微秒数
getSeconds() 方法根据本地时间,返回一个指定的日期对象的秒数

语法:dateObj.getSeconds()
返回值:返回一个 0 到 59 的整数值

    let date6 = new Date(1528959690000);
    console.log(date6); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date6.setSeconds(40)); //1528959700000
    console.log(date6.getSeconds()); //40
setUTCSeconds() 方法为一个依据国际通用时间的特定日期设置秒数

语法:dateObj.setUTCSeconds(secondsValue[, msValue])
参数:
       

  • secondsValue  一个在0到59之间的整数,表示秒数
  • msValue  可选参数,一个0到999之间的数字,代表毫秒数
getUTCSeconds() 方法以世界时为标准,返回一个指定的日期对象的秒数

语法:dateObj.getUTCSeconds()
返回值:返回一个 0 到 59 的整数

    let day6 = new Date(1528959690000);
    console.log(day6.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day6.setUTCSeconds(50)); //1528959710000
    console.log(day6.getUTCSeconds()); //50

8.毫秒

setMilliseconds() 方法会根据本地时间设置一个日期对象的豪秒数

语法:dateObj.setMilliseconds(millisecondsValue)
参数:millisecondsValue  一个 0 到 999 的数字,表示豪秒数

getMilliseconds() 方法,根据本地时间,返回一个指定的日期对象的毫秒数

语法:dateObj.getMilliseconds()
返回值:方法返回一个0 到 999的整数

let date7 = new Date(1528959690000);
console.log(date7); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
console.log(date7.setMilliseconds(100)); //1528959690100
console.log(date7.getMilliseconds()); //100
setUTCMilliseconds() 方法会根据世界时来设置指定时间的毫秒数

语法:dateObj.setUTCMilliseconds(millisecondsValue)
参数:millisecondsValue  0 - 999 之间的数值,代表毫秒数

getUTCMilliseconds() 方法以世界时为标准,返回一个指定的日期对象的毫秒数

语法:dateObj.getUTCMilliseconds()
返回值:返回一个 0 到 999 的整数

    let day7 = new Date(1528959690000);
    console.log(day7.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
    console.log(day7.setUTCMilliseconds(900)); //1528959690900
    console.log(day7.getUTCMilliseconds()); //900

9.time

setTime() 方法以一个表示从1970-1-1 00:00:00 UTC计时的毫秒数为来为 Date 对象设置时间

语法:dateObj.setTime(timeValue)
参数:timeValue  一个整数,表示从1970-1-1 00:00:00 UTC开始计时的毫秒数

getTime() 方法返回一个时间的格林威治时间数值,这个方法的功能和 valueOf() 方法一样

语法:dateObj.getTime()
返回值:返回一个从1970年1月1日0时0分0秒(UTC,即协调世界时)距离该日期对象所代表时间的毫秒数

    let date8 = new Date(1528959690000);
    console.log(date8); //Thu Jun 14 2018 15:01:30 GMT+0800 (CST)
    console.log(date8.setTime(1528959690100)); //1528959690100
    console.log(date8.getTime()); //1528959690100

10.获取时间字符串

  • toDateString() 方法以美式英语和人类易读的形式返回一个日期对象日期部分的字符串
  • toTimeString() 方法以人类易读形式返回一个日期对象时间部分的字符串
  • toUTCString() 方法把一个日期转换为一个字符串,使用UTC时区
  • toISOString() 方法返回一个 ISO(ISO 8601 Extended Format)格式的字符串:
    YYYY-MM-DDTHH:mm:ss.sssZ
  • toJSON() 方法返回 Date 对象的字符串形式
  • toLocaleString() 方法返回该日期对象的字符串,该字符串格式因不同语言而不同
  • toLocaleDateString() 方法返回该日期对象日期部分的字符串,该字符串格式因不同语言而不同
  • toLocaleTimeString() 方法返回该日期对象时间部分的字符串,该字符串格式因不同语言而不同
  • valueOf() 方法返回一个 Date 对象的原始值
let day9 = new Date(1528959690000);
console.log(day9); //Thu Jun 14 2018 15:01:30 GMT+0800 (中国标准时间)
console.log(day9.toString()); //Thu Jun 14 2018 15:01:30 GMT+0800 (中国标准时间)
console.log(day9.toDateString()); //Thu Jun 14 2018
console.log(day9.toTimeString()); //15:01:30 GMT+0800 (中国标准时间)
console.log(day9.toUTCString()); //Thu, 14 Jun 2018 07:01:30 GMT
console.log(day9.toISOString()); //2018-06-14T07:01:30.000Z
console.log(day9.toJSON()); //2018-06-14T07:01:30.000Z
console.log(day9.toLocaleString()); //2018/6/14 下午3:01:30
console.log(day9.toLocaleDateString()); //2018/6/14
console.log(day9.toLocaleTimeString()); //下午3:01:30
console.log(day9.valueOf()); //1528959690000
阅读 1.2k

前端随笔
前端开发学习总结
264 声望
20 粉丝
0 条评论
264 声望
20 粉丝
文章目录
宣传栏