携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情
moment数据,时间戳,和常用时间的相互转换
1 、moment数据-->时间戳
valueOf()方法 同Date对象一样,如果获得的momen数据只需要调用valueOf即可
举例let data= item.valueOf()
2、moment数据-->正常格式数据
用format()
举例let data=moment(item).format('YYYY-MM-DD')
3、时间戳-->moment数据
直接调用即可
举例:let data=moment(1568712361000)
4、时间戳-->正常格式数据
let data=moment(1568712361000).format('YYYY-MM-DD')
5、正常数据格式->moment数据
let data=momet('2020-12-09')
6、正常数据格式->时间戳
`let data=momet('2020-12-09').valueOf()
let data=new Data(2020,11,9).getTime()`
常用获取最近的时间
1 获取近一年的时间
let data=[new Date().getTime()-365*24*3600*1000,new Date().getTime()]
2 获取去年的数据
(1)先获取当年年份
const nowYear = tempTime.getFullYear()
(2)获取去年元旦和今年元旦时间戳
const day = new Date(nowYear, 0, 1).getTime() const nextDay = new Date(nowYear - 1, 0, 1).getTime()
(3)
let data=[daty,nextDay()]
如果可以用moment
const dayAgo=new Date().getTime()-dayCount*24*3600*1000
let data=moment(dayAgo).format('YYYY-MM-DD')
如果不用moment纯原生的话可以这样写
getDay (day) {
// 获取今天日期
const today = new Date()
// 获取距离目标时间多少ms 通过时间戳来进行定位比较准确
const targetdayMilliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day
today.setTime(targetdayMilliseconds)
const tYear = today.getFullYear()
let tMonth = today.getMonth()
let tDate = today.getDate()
tMonth = this.doHandleMonth(tMonth + 1)
tDate = this.doHandleMonth(tDate)
return tYear + '-' + tMonth + '-' + tDate
},
doHandleMonth (month) {
let m = month
if (month.toString().length === 1) {
m = '0' + month
}
return m
}
如果获取这时间区间内的每一天的数组
let dayRange=[]
for (var i = -89; i <= 0; i++) {
dayRange.push(getDay(i))
}
如果接下来获取这段时间内的每个小时的时间话
let dayHourRange=[]
for (var i = -89; i <= 0; i++) {
for (var j = 0; j < 24; j++) {
dayHourRange.push(`${this.getDay(i)} ${j < 10 ? '0' + j : j}:00:00`)
}
}
还有注意moment使用想要获取时间戳时unix 和valueOf的区别,否则可能转换后的时间会出问题