前言
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个
- getMonth() 获取月份是从0开始,1月是0,2月是1,以此类推
- getDay() 获取星期几,星期天为 0, 星期一为 1, 以此类推
unix时间戳转换
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");
}