uniapp仿微信时间显示
文章描述:
uniapp仿微信聊天时间显示样式,时间格式为当天、昨天、今年、大于今年
template
<template>
<view class="content">
<view class="time" v-for="(item,index) in list" :key="index">
{{changeTime(item.time)}}
</view>
</view>
</template>
script
在一个数组里面存放了时间,这里的1000表示1秒钟,60*60表示一分钟60秒和一个小时60分钟,24表示一天的时间。
import fun from '../../commons/js/fun.js'
export default{
data(){
return{
list:[
{time:new Date() - 1000*60*60*24*388}, // 1年前
{time:new Date() - 1000*60*60*24*10}, // 10天前
{time:new Date() - 1000*60*60*15}, // 15小时前
{time:new Date() - 1000*60*60*5}, // 5小时前
{time:new Date() - 1000*60*60*1}, // 1小时前
{time:new Date()}, // 当前时间
]
}
},
methods:{
// 处理时间
changeTime:function(date){
return fun.dateTime(date)
},
}
}
style
page{
height: 100vh;
}
.content{
height: 100%;
padding-top: 200rpx;
}
.time{
font-size: 12px;
color: rgba(39, 40, 50, 0.3);
line-height: 17px;
padding: 10px 0;
text-align: center;
}
fun.js
里面的dateTime是对时间的处理,根据条件判断是否为当天时间、昨天时间、当月、今年、大于今年等。
export default{
// 时间转化
dateTime(e){
let old = new Date(e)
let now = new Date()
// 获取old具体时间
let d = old.getTime() // 时间戳
let h = old.getHours() // 时
let m = old.getMinutes() // 分
let Y = old.getFullYear() // 年
let M = old.getMonth() // 月
let D = old.getDate() // 日
// 获取now具体时间
let nd = now.getTime()
let nh = now.getHours()
let n = now.getMinutes()
let nY = now.getFullYear()
let nM = now.getMonth()
let nD = now.getDate()
// 当天的时间
if(D === nD && M === nM && Y === nY){
if(h<10){
h = '0'+h;
}
if(m<10){
m = '0'+m;
}
return h + ':' + m
}
// 昨天时间
if(D+1 === nD && M === nM && Y === nY){
if(h<10){
h = '0'+h;
}
if(m<10){
m = '0'+m;
}
return '昨天' + h + ':' + m
}else if(Y === nY){
// 今年
if(h<10){
h = '0'+h;
}
if(m<10){
m = '0'+m;
}
return M + '月' + D + '日' + h + ':' + m
}else{
// 大于今年
if(h<10){
h = '0'+h;
}
if(m<10){
m = '0'+m;
}
return Y +'年'+ M + '月' + D + '日' + h + ':' + m
}
// return Y+'-'+M+'-'+D+' ' + h +':' +m
}
}
发布时间:2022/09/22
发表评论