JS 内置对象之 Date
Date 对象封装一个时间点,提供操作时间的 API。Date 对象中封装的是从 1970 年 1 月 1 日 0 点至今的毫秒数。
一、创建 Date 对象
// 获取客户端的当前系统时间
var now = new Date();
// 创建自定义时间
var date = new Date("1997/08/10 12:34:56");
var date = new Date(yyyy, MM, dd, hh, mm, ss);
// 复制时间对象
var oldDate = new Date("1997/08/10");
var newDate = new Date(oldDate);
二、方法
- 日期分量:FullYear、Month、Date、Day、Hours、Minutes、Seconds、Milliseconds。
- 每一个日期分量都有一个
get
和set
方法(除了 Day),分别用于获取和设置时间对象。 - 添加
UTC
,以世界时为标准,例如getUTCDate()
、getUTCFullYear()
。
1、年 FullYear
范围:无
获取:dateObj.getFullYear()
const moonLanding = new Date('July 20, 69 00:20:18');
console.log(moonLanding.getFullYear()); // 1969
设置:dateObj.setFullYear(yearValue[, monthValue[, dayValue]])
参数:
- yearValue:指定年份的整数值,例如 1997。
- monthValue:一个 0 到 11 之间的整数值,表示从一月到十二月。
- dayValue:一个 1 到 31 之间的整数值,表示月份中的第几天。如果指定了 dayValue 参数,就必须同时指定 monthValue。
var theBigDay = new Date();
console.log(theBigDay.setFullYear(1997)); // 874149810899
console.log(theBigDay); // Sat Sep 13 1997 22:23:30 GMT+0800 (中国标准时间)
2、月 Month
范围:0 ~ 11(0 是一月)
获取:dateObj.getMonth()
const moonLanding = new Date('July 20, 69 00:20:18');
console.log(moonLanding.getMonth()); // 6
设置:dateObj.setMonth(monthValue[, dayValue])
参数:
- monthValue:介于 0 到 11 之间的整数(表示一月到十二月)。
- dayValue:从 1 到 31 之间的整数,表示月份中的第几天。0 为上个月最后一天
var theBigDay = new Date();
console.log(theBigDay.setMonth(6)); // 1626175439836
console.log(theBigDay); // Tue Jul 13 2018 22:23:59 GMT+0800 (中国标准时间)
3、日 Date
范围:1 ~ 31
获取:dateObj.getDate()
const birthday = new Date('August 10, 1997 12:34:56');
const date1 = birthday.getDate();
console.log(date1); // 10
设置:dateObj.setDate(dayValue)
参数:dayValue:一个整数,表示该月的第几天。
var theBigDay = new Date(1997, 8, 9);
console.log(theBigDay.setDate(10)); // 873820800000
console.log(theBigDay); // Wed Sep 10 1997 00:00:00 GMT+0800 (中国标准时间)
4、星期 Day
范围:0 ~ 6(0 是周日)
获取:dateObj.getDay()
const birthday = new Date('August 10, 1997 12:34:56');
const day1 = birthday.getDay();
console.log(day1); // 0
设置:无
5、时 Hours
范围:0 ~ 23
获取:dateObj.getHours()
const day1 = new Date('March 13, 08 04:20');
console.log(day1.getHours()); // 4
设置:dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
参数:
- hoursValue:一个 0 到 23 的整数,表示小时。
- minutesValue:一个 0 到 59 的整数,表示分钟。
- secondsValue:一个 0 到 59 的整数,表示秒数。若指定了 secondsValue,则必须同时指定 minutesValue。
- msValue:一个 0 到 999 的数字,表示微秒数,若指定了 msValue,则必须同时指定 minutesValue 和 secondsValue。
var theBigDay = new Date();
console.log(theBigDay.setHours(12)); // 1631508006935
console.log(theBigDay); // Mon Sep 13 2018 12:40:06 GMT+0800 (中国标准时间)
6、分 Minutes
范围:0 ~ 59
获取:dateObj.getMinutes()
const birthday = new Date('August 10, 1997 12:34:56');
console.log(birthday.getMinutes()); // 34
设置:dateObj.setMinutes(minutesValue[, secondsValue[, msValue]])
参数:
- minutesValue:一个 0 到 59 的整数,表示分钟数。
- secondsValue:一个 0 到 59 的整数,表示秒数。如果指定了 secondsValue,则必须同时指定 minutesValue。
- msValue:一个 0 到 999 的数字,表示微秒数,如果指定了 msValue,则必须同时指定 minutesValue 和secondsValue。
var theBigDay = new Date();
console.log(theBigDay.setMinutes(45)); // 1631533555976
console.log(theBigDay); // Mon Sep 13 2018 22:45:55 GMT+0800 (中国标准时间)
7、秒 Seconds
范围:0 ~ 59
获取:dateObj.getSeconds()
const birthday = new Date('August 10, 1997 12:34:56');
console.log(birthday.getSeconds()); // 56
设置:dateObj.setSeconds(secondsValue[, msValue])
参数:
- secondsValue:一个 0 到 59 的整数。
- msValue:一个 0 到 999 的数字,表示微秒数。
var theBigDay = new Date();
console.log(theBigDay.setSeconds(30)); // 1631533950109
console.log(theBigDay); // Mon Sep 13 2018 22:52:30 GMT+0800 (中国标准时间)
8、毫秒 MilliSeconds
范围:0 ~ 999
获取:dateObj.getUTCMilliseconds()
const exampleDate = new Date('1997-08-10T03:04:05.678Z');
console.log(exampleDate.getUTCMilliseconds()); // 678
设置:dateObj.setMilliseconds(millisecondsValue)
参数:millisecondsValue:一个 0 到 999 的数字,表示豪秒数。
var theBigDay = new Date();
console.log(theBigDay.setMilliseconds(100)); // 1631534152100
console.log(theBigDay); // Mon Sep 13 2018 22:55:52 GMT+0800 (中国标准时间)
9、格林威治时间数 Time
范围:无
获取:dateObj.getTime()
const birthday = new Date('August 10, 1997 12:34:56');
console.log(birthday.getTime()); // 871187696000
设置:dateObj.setTime(timeValue)
参数:timeValue:一个整数,表示从 1970-1-1 00:00:00 UTC 开始计时的毫秒数。
const theBigDay = new Date('August 10, 1997 12:34:56');
let oneDay = new Date();
console.log(oneDay.setTime(theBigDay.getTime())); // 871187696000
console.log(oneDay); // Sun Aug 10 1997 12:34:56 GMT+0800 (中国标准时间)