JavaScript 时间日期的比较、加减

作者:vkvi 来源:ITPOW(原创) 日期:2019-12-17

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 日了。

相关文章