Date对象
Date对象可用于获取当前对象、设置/获取特定时间对象。
关于时间的前置知识
标准时间
GMT即「格林威治标准时间」(Greenwich Mean Time,简称G.M.T.),指位于英国伦敦郊区的皇家格林威治天文台的标准时间,因为本初子午线被定义为通过那里的经线。然而由于地球的不规则自转,导致GMT时间有误差,因此目前已不被当作标准时间使用。UTC是最主要的世界时间标准,是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间。UTC比GMT来得更加精准。其误差值必须保持在0.9秒以内,若大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。不过日常使用中,GMT与UTC的功能与精确度是没有差别的。协调世界时区会使用“Z”来表示。而在航空上,所有使用的时间划一规定是协调世界时。而且Z在无线电中应读作“Zulu”(可参见北约音标字母),协调世界时也会被称为“Zulu time”。
TimeZone&UTC Offsets:时区与偏移
人们经常会把时区与UTC偏移量搞混,UTC偏移量代表了某个具体的时间值与UTC时间之间的差异,通常用HH:mm形式表述。而TimeZone则表示某个地理区域,某个TimeZone中往往会包含多个偏移量,而多个时区可能在一年的某些时间有相同的偏移量。譬如America/Chicago, America/Denver, 以及 America/Belize在一年中不同的时间都会包含 -06:00 这个偏移。
时间戳
Unix时间戳表示当前时间到1970年1月1日00:00:00 UTC对应的秒数。注意,JavaScript内的时间戳指的是当前时间到1970年1月1日00:00:00 UTC对应的毫秒数,和unix时间戳不是一个概念,后者表示秒数,差了1000倍。
此段参考链接:https://segmentfault.com/a/1190000007581722
创建日期对象
有 4 种方法创建新的日期对象:
new Date()
new Date(year, month, day, hours, minutes, seconds, milliseconds)
new Date(milliseconds) //1970年1月1日到创建日期的间隔时间(ms)
new Date(date string)
生成当前时间对象
var dateObj = new Date()
console.log(dateObj)//打印的是UTC时间
console.log(dateObj.toString())//打印当前时区时间的字符串形式
输出结果:
2021-08-15T07:35:28.493Z
Sun Aug 15 2021 15:35:28 GMT+0800 (中国标准时间)
生成特定时间对象
示例
var dateObjSp = new Date(2021,0,1,16,2,30)
- 参数分别为年份、月份、日期、时、分、秒
- 月份的取值范围是0~11,分别代表1月到12月
示例
var d2 = new Date(“10/2/1995 16:57:22”)
var dateObjSp = new Date(2021,0,1,16,2,30)
var d2 = new Date("10/2/1995 16:57:22")
console.log(dateObjSp .toString())//打印当前时区时间的字符串形式
console.log(d2.toString())
输出结果:
Fri Jan 01 2021 16:02:30 GMT+0800 (中国标准时间)
Mon Oct 02 1995 16:57:22 GMT+0800 (中国标准时间)
日期设置方法
方法 | 描述 |
---|---|
setDate() | 以数值(1-31)设置日 |
setFullYear() | 设置年(可选月和日) |
setHours() | 设置小时(0-23) |
setMilliseconds() | 设置毫秒(0-999) |
setMinutes() | 设置分(0-59) |
setMonth() | 设置月(0-11) |
setSeconds() | 设置秒(0-59) |
setTime() | 设置时间(从 1970 年 1 月 1 日至今的毫秒数) |
日期获取方法
方法 | 描述 |
---|---|
getDate() | 以数值返回天(1-31) |
getDay() | 以数值获取周名(0-6) |
getFullYear() | 获取四位的年(yyyy) |
getHours() | 获取小时(0-23) |
getMilliseconds() | 获取毫秒(0-999) |
getMinutes() | 获取分(0-59) |
getMonth() | 获取月(0-11) |
getSeconds() | 获取秒(0-59) |
getTime() | 获取时间(从 1970 年 1 月 1 日至今) |