JavaScript Date日期对象用于处理日期和时间。
有四种方式初始化日期
new Date() // 当前日期和时间 new Date(milliseconds) //返回从 1970 年 1 月 1 日至今的毫秒数 new Date(dateString) new Date(year, month, day, hours, minutes, seconds, milliseconds)
实例化一个日期
var a = new Date(); console.log(a); // Mon May 23 2022 15:31:52 GMT+0800 (中国标准时间) var b = new Date("May 23, 2021 10:13:00"); console.log(b) // Sun May 23 2021 10:13:00 GMT+0800 (中国标准时间) var c = new Date(22, 5, 23); console.log(c) // Fri Jun 23 1922 00:00:00 GMT+0800 (中国标准时间) var d = new Date(2022, 5, 23); console.log(d) // Thu Jun 23 2022 00:00:00 GMT+0800 (中国标准时间)
日期对象设置一个特定的日期 (2022 年5 月 23 日)
var a = new Date(); a.setFullYear(2022, 5, 23); console.log(a); // Thu Jun 23 2022 15:57:40 GMT+0800 (中国标准时间)
设置一个特定的时间(10点30分22秒)
var a = new Date(); a.setFullYear(2022, 5, 23); // 年月日 console.log(a); // Thu Jun 23 2022 15:57:40 GMT+0800 (中国标准时间) a.setHours(10, 30, 22); // 时分秒 console.log(a) // Thu Jun 23 2022 10:30:22 GMT+0800 (中国标准时间)
设置日期的一些方法
方法 | 参数 | 说明 |
---|---|---|
setFullYear() | (year,month,date) | 设置 Date 对象中的年份(四位数字)。 |
setHours() | (hoursr, min, sec, ms) | 设置 Date 对象中的小时 (0 ~ 23)。 |
setYear() | 已废弃。请使用 setFullYear() 方法代替。 | |
setMonth() | (month, date) | 设置 Date 对象中月份 (0 ~ 11)。 |
setDate() | (data) | 设置 Date 对象中月的某一天 (1 ~ 31)。 |
setMinutes() | (min,sec, ms ) | 设置 Date 对象中的分钟 (0 ~ 59)。 |
setSeconds() | (sec, ms ) | 设置 Date 对象中的秒钟 (0 ~ 59)。 |
setMilliseconds() | ( ms ) | 设置 Date 对象中的毫秒 (0 ~ 999)。 |
setTime() | time | setTime() 方法以毫秒设置 Date 对象。 |
setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 | |
setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字)。 | |
setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 | |
setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 | |
setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 | |
setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 | |
setUTCSeconds() | setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。 |
获取日期的一些方法
方法 | 说明 |
---|---|
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 星期天为 0, 星期一为 1, 以此类推 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getHours() | 返回 Date 对象的小时 (0 ~ 23)。 |
getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999)。 |
getMinutes() | 返回 Date 对象的分钟 (0 ~ 59)。 |
getMonth() | 从 Date 对象返回值 0(一月) 到 11(十二月) 之间的一个整数 |
getSeconds() | 返回 Date 对象的秒数 (0 ~ 59)。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 |
getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 |
getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 |
getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份。 |
getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23)。 |
getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 |
getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 |
getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11)。 |
getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 |
getYear() | 已废弃。 请使用 getFullYear() 方法代替。 |
获取当前日期的年月日时分秒
var a = new Date(); // 当前时间2022-5-23 16:25:58:968 星期一 year = a.getFullYear(); // 2022 month = a.getMonth(); // 4 data = a.getDate(); // 23 hour = a.getHours(); // 16 minute = a.getMinutes(); // 25 second = a.getSeconds(); // 58 ms = a.getMilliseconds(); // 968 day = a.getDay(); // 1
需要注意的地方有2个
getTime()获取当前时间的unix时间戳
var a = new Date(); time = a.getTime(); console.log(time); // 1653294924546 (毫秒)
setTime()设置unix时间戳格式的时间
var a = new Date(); a.setTime(1653294924546); console.log(a); // Mon May 23 2022 16:35:24 GMT+0800 (中国标准时间)
日期对象设置为 3 天后的日期
var current = new Date(); current.setDate(current.getDate()+3); // 当前时间+3天
当前日期往前5天
var current = new Date(); current.setDate(current.getDate()-5); // 当前时间-5天
当前时间往后加一个小时
var current = new Date(); current.setHours(current.getHours()+1); // 当前时间+1小时
注意: 如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换。
日期对象也可用于比较两个日期。
下面的代码将当前日期与 2020 年 1 月 5 日做了比较:
var x = new Date(); x.setFullYear(2020, 0, 5); var today = new Date(); if (today > x){ console.log("Today is after 2022.1.5"); } else{ console.log("Today is before 2022.1.5"); }