内置对象:
就是指js自带的一些对象,这些对象供开发者使用,并提供了一些常用的或者是最基本而必要的功能(属性和方法)
内置对象最大的优点就是帮助我们快速开发
Date 日期对象
MDN地址:MDN Date日期链接
W3C地址:W3C Date链接
是一个构造函数,需要 new 来调用,用来处理日期和时间,Date对象基于1970年1月1号起的毫秒
var date = new Date()
1、使用Date() 没有参数,返回当前系统时间
2、参数的常用写法
2.1、数字型 2021,12,12 返回的时间要比实际大1个月
console.log(new Date(2021,12,12))
// 输出:Wed Jan 12 2022 00:00:00 GMT+0800 (中国标准时间)
2.2、字符串型 ‘2021-12-12 12:12:12’ !!!最常用
console.log(new Date('2021-12-12 12:12:12'))
// 输出:Sun Dec 12 2021 12:12:12 GMT+0800 (中国标准时间)
3、日期格式化
getFullYear() 方法根据本地时间返回指定日期的年份,不需要跟参数
var date = new Date();
date.getFullYear(); //返回当前的年
date.getMonth() + 1; //获取当前月(0-11),返回的月份比实际的月份小1,要记得 +1
date.getDate(); //返回几号
date.getDay(); //周一 —— 周六返回的是1-6,但是周日返回的是 0
date.getHours(); //小时
date.getMinutes(); //分钟
date.getSeconds(); //秒
3.1、获取 Date 的总的毫秒(时间戳)
valueOf()
var date = new Date();
date.valueOf(); //返回现在距离1970-01-01的总毫秒数
date.getTime(); //返回现在距离1970-01-01的总毫秒数,常用!!!
简单写法(最常用的写法)
var date1 = +new Date(); //+new Date() 返回的就是总的毫秒数
h5新增的写法 (兼容性问题,IE678不兼容,现在不用在乎IE了)
Date.now(); //返回现在距离1970-01-01的总毫秒数
4、设置日期
4.1 setDate()
方法将月份中的某一天设置为日期对象。
var date = new Date()
date.setDate(day)
参数 day 必传,且必须为整数,表示月中的某一天,预期值:1-31,但是允许其他值
0 会是上个月最后一天
-1 上个月最后一天的前一天
当月31天,32 会是下个月的第一天
当月30天,32会是下个月的第二天
4.2 setMonth()
方法设置日期对象的月份。一月为 0,二月为 1,依此类推。此方法还可用于设置月中的日期。
Date.setMonth(month, day)
month:必填,表示月份的整数。 期望值是 0-11,但允许其他值。
-1:上年的最后一个月
12:下一年第一个月
13:下一年第二个月
day:可选,必须为整数, 表示月中的某一天,预期值:1-31,但是允许其他值
0 会是上个月最后一天
-1 上个月最后一天的前一天
当月31天,32 会是下个月的第一天
当月30天,32会是下个月的第二天
// 获取过去12个月,不包含当前月
function getLastTwelveMonth() {
let dateArr = []
let date = new Date()
date.setMonth(date.getMonth(), 1)
for (let i = 0; i < 12; i++) {
date.setMonth(date.getMonth() - 1)
let m = date.getMonth() + 1
m = m < 10 ? "0" + m : m + ""
dateArr.push(date.getFullYear() + "" + m)
}
return dateArr.reverse()
}
console.log(this.getLastTwelveMonth())
// 输出:[ "202011","202012","202101","202102","202103","202104","202105","202106","202107","202108","202109","202110"]