当前效果:
因为后端传递过来的是秒值,显示的时候也是秒值。
但是这种不太友好,所以需要转换为 “xxxx年xx月xx日 xx:xx:xx” 的格式。
参考代码:
formatDate (now) {
const date = new Date(now)
var y = date.getFullYear() // 年份
var m = date.getMonth() + 1 // 月份,注意:js里的月要加1
var d = date.getDate() // 日
var h = date.getHours() // 小时
var min = date.getMinutes() // 分钟
var s = date.getSeconds() // 秒
// 返回值,根据自己需求调整,现在已经拿到了年月日时分秒了
return y + '-' + m + '-' + d + ' ' + h + ':' + min + ':' + s
}
得到想要的时间信息:
const seconds = 1723079062000
// 注意:接收的是毫秒值
const date = new Date(seconds)
console.log(date.getFullYear())
console.log(date.getMonth() + 1)
console.log(date.getDate())
console.log(date.getHours())
console.log(date.getMinutes())
console.log(date.getSeconds())
封装为方法:
const secondsToDateStr=(seconds)=>{
const date = new Date(seconds*1000)
return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`
}
const seconds = 1723079062
console.log(secondsToDateStr(seconds))
结果当中,有些数是单数,实际上我们想要在前面填充0。
比如:2024-08-08 09:04:22
继续优化方法:
const secondsToDateStr = (seconds) => {
const date = new Date(seconds * 1000)
// 月份
const month = date.getMonth() + 1
let monthStr = month.toString();
if (month < 10) {
monthStr = "0" + monthStr
}
// 日期
const mdate = date.getDate()
let mdateStr = mdate.toString();
if (mdate < 10) {
mdateStr = "0" + mdateStr
}
// 时
const hour = date.getHours()
let hourStr = hour.toString();
if (hour < 10) {
hourStr = "0" + hourStr
}
// 分
const minute = date.getMinutes()
let minuteStr = minute.toString();
if (minute < 10) {
minuteStr = "0" + minuteStr
}
// 秒
const second = date.getSeconds()
let secondStr = second.toString();
if (second < 10) {
secondStr = "0" + secondStr
}
// 返回
return `${date.getFullYear()}-${monthStr}-${mdateStr} ${hourStr}:${minuteStr}:${secondStr}`
}
const seconds = 1723079062
console.log(secondsToDateStr(seconds))
最后,我们将其应用到项目中。
<p class="font-weight-light m-0 p-0 text-right">
{{ secondsToDateStr(article.update_time) }}
</p>
最终效果如下: