JavaScript 日期的起点
1970-01-01 08:00:00,注意是 1970 年,早上 8 点。
getTime()
时间戳,返回的是自 1970-01-01 08:00:00 以来的毫秒数。
new Date()
可以跟几种参数。
- 一种是不要参数,表示当前时间。
- 一种是日期字符串,比如:new Date("2019-12-17"),这里 12 表示 12月。new Date("2019-12-32") 是错误的。
- 一种是年、月、日、时、分、秒、毫秒参数,比如:new Date(2019, 11, 17),这里 11 表示 12 月。至少要 2 个参数。这种情况下,参数值越界,会自动滚,比如:new Date(2019, 11, 32) 表示 2020 年 1 月 1 日。
- 一种是时间戳,即一个数字。
- 一种是时间对象,比如:new Date(new Date())。不过通常没必要啦 。
特别注意月
0 代表 1 月,1 代表 2 月……
日期大小比较
直接用 <、>、<=、>=
日期相等比较
不能用 ==、=== 噢,这总是返回 false,因为那是比较地址了。如果要精确比较,可比较 getTime() 返回的毫秒值。
日期增加、减少
先了解几个函数。
getXXX
- getFullYear:获取年,比如 2019,注意是 getFullYear。而 getYear 返回的是 1900 年以来的年数(注意是 1900,不是前面的 1970,乱!),比如 2019 年是 119。
- getMonth:获取月(注意 11 代表 12 月)
- getDate:获取日,注意是 getDate,不是 getDay,getDay 返回的是星期,星期日用 0 表示,星期一用 1 表示,星期二用 2 表示。
- getHours:获取时
- getMinutes: 获取分
- getSeconds: 获取秒
- getMilliseconds: 获取毫秒,最小 0,最大 999
setXXX
- setFullYear:设置年
- setMonth:设置月(注意 11 代表 12 月)
- setDate:设置日
- setHours:设置时
- setMinutes:设置分
- setSeconds:设置秒
- setMilliseconds:设置毫秒
由于前面讲了越界时,会自动滚动,所以我们要增加什么项,就直接加数字就是了,比如加天数:
这就变成 2020 年 1 月 2 日了。