近期业务上涉及到很多与时间有关系的地方,写个总结。
这里写目录标题
- 日期的定义
- 时间戳
- 时间戳和一般时间的相互转换
- 从日期中获取值
- 日期之间的计算
日期的定义
首先,用js定义时间的方法,一共有四种:
console.log(new Date()) //现在的日期
console.log(new Date(1000)) //毫秒
console.log(new Date("2024-1-9")) //字符串
console.log(new Date(2024, 1, 9, 10, 10, 10)) //年月日时分秒
打印出来的都是可以看到的标准日期格式。
时间戳
let time = new Date() //当下的时间(标准)
console.log(time.getTime()) //当下的时间转化为时间戳
let time1 = Date.now() //获取当下时间的时间戳
console.log(time1)
时间戳和一般时间的相互转换
时间戳转时间:这个在一开始的定义中已经有提到,new Date内部是支持传入时间戳的。 所以我们只需要把时间戳传进去,就可以获得标准时间;
时间转时间戳:
用到getTime()方法;
从日期中获取值
注意,下面的方法不针对时间戳:
let time5 = new Date()
console.log(time5.getFullYear()) // 年
console.log(time5.getMonth() + 1) // 月
console.log(time5.getDate()) // 日
console.log(time5.getDay()) // 周(0是周日,依次类推)console.log(time5.getHours()) // 时
console.log(time5.getMinutes()) // 分
console.log(time5.getSeconds()) // 秒
如果是时间戳,需要先转化为标准格式。
日期之间的计算
日期之间的计算,标准时间和时间戳之间也是可以计算的。但最好讲究一致性。
一般日期计算,我们需要从差值中读到年,月,日,时,分,秒的差值。那么这里有计算公式:(有个一千是因为时间戳是毫秒)
获取天:(开始时间 - 结束时间) / (1000 * 60 * 60 * 24)
获取小时:(开始时间 - 结束时间) / (1000 * 60 * 60 )
获取分钟:(开始时间 - 结束时间) / (1000 * 60 )