这两天有个需求就是,处理日期,时间
new Date()
- 在浏览器控制台中,直接输入new Date() 会返回当前时区的当前时间。在中国是东八区,以GMT时间为基准,相差八个小时。
new Date()
// Sat Jun 17 2017 14:23:59 GMT+0800 (CST)
- 如果给new Date()传入指定的参数,比如传入一个UTC时间,返回来的也是当前时区的当前时间,或者传一个当前的时间。2017-02-22
new Date('2017-02-22T13:00:56.000Z')
// Wed Feb 22 2017 21:00:56 GMT+0800 (CST)
new Date('2017-02-22') // 如果把T后面的部分去掉也没有时间,默认时间是UTC时间的零点,转换到我们时区的时间就是八点
// Wed Feb 22 2017 08:00:00 GMT+0800 (CST)
new Date().getTime() // 打印出来的是当前时间相距1970年1月1日的时间戳,单位是毫秒,计算的时候别忘了换算单位
// 1498558976824
格式化日期
- 当然我们不能用new Date()直接返回来的时间格式,一般我们用的时间都是经过格式化的,处理成我们想要的时间格式。下面就以 2017年3月2日的这个格式举个栗子。
let date = new Date() // 这样直接获取的是当前时间,如果传参就是想要修改的日期格式的参数
let month = date.getMonth() + 1
let year = date.getFullYear()
let day = date.getDate()
let hours = date.getHours()
let mints = date.getMinutes()
let seconds = date. getSeconds()
let millise = date. getMilliseconds()
return year + '年' + month + '月' + day + '日 ' + hours + ':' + mints + ':' + seconds + '.' + millise
JS按照指定日期加、减,多少天、多少月、多少年的日期, 根据加、减number传入相应的正负
CaculateDate (dateType, number, date) { // date 是用new Date()包裹的对象
switch (dateType) {
case 'y':
date.setFullYear(date.getFullYear() + number)
return date
case 'm':
date.setMonth(date.getMonth() + number)
return date
case 'd':
date.setDate(date.getDate() + number)
return date
default:
break
}
}