一. 获取时间戳
方法一:Date.now()
console.log(Date.now()) // 1701676212978
方法二:Date.parse()
Date.parse()将字符串或者时间对象直接转化成时间戳:
Date.parse(new Date()) // 1701676571000
Date.parse("2023/12/04 15:53") // 1701676380000
注意:不推荐这种办法,毫秒级别的数值被转化为000。
方法三:valueOf()
(new Date()).valueOf() // 1701676753585
方法四:getTime()
通过原型方法直接获得当前时间的毫秒值,准确:
new Date().getTime() // 1701676803066
方法五:Number
将时间对象转化为一个number类型的数值,即时间戳:
Number(new Date()) // 1701676866824
二. 将时间戳转化为指定时间格式
- 默认格式:new Date(‘任意一个时间戳’)
new Date(Date.now()) // Mon Dec 04 2023 16:03:37 GMT+0800 (中国标准时间)
- 指定格式
const getTimeFormatter = (time: Date.now()) => {const date = new Date(time)// 获取年,月,日const year = date.getFullYear()const month = date.getMonth() + 1const day = date.getDate()// 获取时分秒const hour = date.getHours() >= 10 ? date.getHours() + '' : '0' + getHours()const minute = date.getMinutes() >= 10 ? date.getMinutes() + '' : '0' + getMinutes()const second = date.getSeconds() >= 10 ? date.getSeconds() + '' : '0' + getSeconds()return year + '年' + month + '月' + day + '日' + ' ' + hour + '时' + minute + '分' + second + '秒'
}getTimeFormatter() // '2023年12月4日 16时29分53秒'
三. 将任意时间戳转化为具体时间长度
const formatterTime = (second) => {const y = Math.floor(second / 60 /60 / 24 / 365) // 获取年数const yy = y < 1 ? '' : + y + '年'const d = Math.floor(second / 60 / 60 / 24 % 365) // 获取天数const dd = d < 10 ? '0' + d : dconst h = Math.floor(second / 60 / 60 % 24) // 获取小时数const hh = h < 10 ? '0' + h : hconst m = Math.floor(second / 60 % 60) // 获取分钟数const mm = m < 10 ? '0' + m : mconst s = Math.floor(second % 60) // 获取分钟数const ss = s < 10 ? '0' + s : sreturn yy + dd + '天' + hh + '时' + mm + '分' + ss + '秒'
}
formatterTime (Date.now()/1000) // '53年350天09时05分22秒'