使用Vue的filters模拟微信朋友圈的时间显示格式

模拟微信朋友圈的时间显示格式
在这里插入图片描述
代码实现:
dateFormat.js

/* 假设一个发布的时间,和当前系统时间比较 */
//不满足1分钟,刚刚
//不满足1小时,几分钟前
//不满足1天,几小时前
//不满足2天,昨天
//不满足一个月时,几天前

const dateFormat = Vue.filter('dateFormat', (date) => {
	//获取当前时间的毫秒值
	const now = new Date().getTime();
	//获取过滤时间的毫秒值
	const datetime = date.getTime();
	//计算出两个时间之间相差的秒值
	const interval = (now - datetime) / 1000;
	//判断
	if (interval < 60) {
		return '刚刚'
	} else if (interval < (60 * 60)) {
		return `${parseInt(interval/60)}分钟前`
	} else if (interval < (60 * 60 * 24)) {
		return `${parseInt(interval/60/60)}小时前`
	} else if (interval < (60 * 60 * 24 * 2)) {
		return '昨天'
	} else if (interval < (60 * 60 * 24 * 8)) {
		return `${parseInt(interval/60/60/24)}天前`
	} else {
		let year = date.getFullYear();
		let month = date.getMonth() + 1;
		month = month < 10 ? `0${month}` : month;
		let day = date.getDate();
		day = day < 10 ? `0${day}` : day;
		let h = date.getHours();
		h = h < 10 ? `0${h}` : h;
		let m = date.getMinutes();
		m = m < 10 ? `0${m}` : m;
		let s = date.getSeconds();
		s = s < 10 ? `0${s}` : s;
		return `${year}-${month}-${day} ${h}:${m}:${s}`
	}
})

export default dateFormat;

index.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>时间过滤</title>
	</head>
	<body>
		<div id="app">
			<h1>{{datetime1|dateFormat}}</h1>
			<h1>{{datetime2|dateFormat}}</h1>
			<h1>{{datetime3|dateFormat}}</h1>
			<h1>{{datetime4|dateFormat}}</h1>
			<h1>{{datetime5|dateFormat}}</h1>
			<h1>{{datetime6|dateFormat}}</h1>
		</div>
		<script src="js/vue.js"></script>
		<script type="module">
			//导入全局过滤器
			import dateFormat from './js/dateFormat.js'
			const vm = new Vue({
				el:'#app',
				data:{
					//模拟发朋友圈的时间
					datetime1:new Date(),
					datetime2:new Date('2022/4/8 11:12:10'),
					datetime3:new Date('2022/4/8 09:04:52'),
					datetime4:new Date('2022/3/7 11:04:52'),
					datetime5:new Date('2022/2/6 10:04:52'),
					datetime6:new Date('2021/9/30 10:55:52')
				}
			});
		</script>
	</body>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐小侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值