介绍:
Date 对象用于处理日期与时间。可以通过 new 关键词来定义 Date 对象,也可以通过使用针对日期对象的方法操作日期。
时间戳:时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总毫秒数。
api使用
1.getTime() 获取时间戳
console.log(new Date().getTime()) // 1600075903652
2.getYear() 获取年份
console.log(new Date().getYear()) // 120
getYear是20世纪发布的方法,获取年份后两位,但是这个方法到21世纪以后明显不实用了,所以现在不用它来获取年份,而是使用getFullYear获取完整的四位的年份。
3.getFullYear() 获取四位年份
console.log(new Date().getFullYear()) // 2023
4.getMonth() 获取月份
console.log(new Date().getMonth()) // 1
getMonth()获取月份是0-11,因此2月份获取到的是1,具体使用时应当返回值+1
5.getDate() 获取日
console.log(new Date().getDate()) // 27
6.getDay() 获取星期号
console.log(new Date().getDay()) // 1
7.getHours() 获取小时
console.log(new Date().getHours()) // 16
8.getMinutes() 分
console.log(new Date().getMinutes()) // 8
9.getSeconds() 秒
console.log(new Date().getSeconds()) // 38
10.getMilliseconds() 毫秒
console.log(new Date().getMilliseconds()) // 837
扩展Api
上面get系列的API除了Day以外其他的都可以set:
setTime
,setFullYear
,setMonth
,setDate
,setHours
,setMinutes
,setSeconds
,setMilliseconds
。
- 星期几是不能设置的,星期几是根据日期来自动计算的而不能设置。
- 使用set系列API的时候传入的参数可以超出正常范围,此时js会自动前后推算,比如:
date.setMonth(12)
会自动推算到下一年的一月,date.setDate(0)
会自动推算到上个月的最后一天等。- 调用set方法的时候可以传入多个参数设置同级别更精细的时间,比如:
date.setFullYear(2023,2,2)
指的是设置为2000年3月2日date.setMonth(2,2)
指的是设置为3月2日date.setHours(2,2,2)
指的是设置为凌晨2点零2分2秒
具体运用
1.设置日期为明天
var date = new Date()
date.setDate(date.getDate() + 1)
2.获取这个月总天数
var date = new Date()
date.setMonth(date.getMonth()+1, 0) // 设置为下个月0号也就是这个月最后一天
var allDays = date.getDate() // 最后一天是几号这个月就有几天 console.log(allDays)
3.日期转换
var date = new Date()
console.log(date.toString()) // Mon Feb 27 2023 16:15:19 GMT+0800 (中国标准时间) console.log(date.toDateString()) // Mon Feb 27 2023
console.log(date.toTimeString()) // 16:15:19 GMT+0800 (中国标准时间) console.log(date.toLocaleString()) // 2023/2/27 16:16:01 console.log(date.toLocaleDateString()) // 2023/2/27
console.log(date.toLocaleTimeString()) // 16:16:42
4.YY-MM-DD 格式
function setTime () {
let date = new Date();
let year = date.getFullYear(); // 年
let month = date.getMonth() + 1; // 月
let day = date.getDate(); // 日let hour = date.getHours(); // 时
hour = hour < 10 ? '0' + hour : hour; // 如果只有一位,则前面补零
let minute = date.getMinutes(); // 分
minute = minute < 10 ? '0' + minute : minute; // 如果只有一位,则前面补零
let second = date.getSeconds(); // 秒
second = second < 10 ? '0' + second : second; // 如果只有一位,则前面补零
return `${year}-${month}-${day} ${hour}:${minute}:${second}`
}// '2023-2-27 16:22:12'
5.动态时间
function setTime () {
let date = new Date();
let year = date.getFullYear(); // 年
let month = date.getMonth() + 1; // 月
let day = date.getDate(); // 日let hour = date.getHours(); // 时
hour = hour < 10 ? '0' + hour : hour; // 如果只有一位,则前面补零
let minute = date.getMinutes(); // 分
minute = minute < 10 ? '0' + minute : minute; // 如果只有一位,则前面补零
let second = date.getSeconds(); // 秒
second = second < 10 ? '0' + second : second; // 如果只有一位,则前面补零
setTimeout(setTime,1000)
console.log(`${year}-${month}-${day} ${hour}:${minute}:${second}`)
return `${year}-${month}-${day} ${hour}:${minute}:${second}`
}
let time = setTime()
......