JS评论时间

一分钟内显示 1分钟前
一小时内显示 xx分钟前
今天之内的显示 xx:xx
昨天的显示 昨天xx:xx
昨天之前,今年之内 xx月xx日
今年之前的显示 xx年xx月xx日
废话少说,上代码

export default {
	convertDate: (timestamp) => {
		// 当前时间
		var nowDate = new Date();
		// 分 xx分
		var nowMinutes = nowDate.getMinutes();
		// 时 xx时
		var nowHours = nowDate.getHours();
		// 日 
		var nowDays = nowDate.getDate();
		// 月 getMonth()取得月份是从0开始的,所以要+1
		var nowMonths = nowDate.getMonth() + 1;
		// 年 
		var nowYears = nowDate.getFullYear();
		
		// 需要转化的时间对象
		var formatDate = new Date(timestamp);
		var minutes = formatDate.getMinutes();
		var minutesShow = ('0' + formatDate.getMinutes()).substr(-2);
		var hours = formatDate.getHours();
		var hoursShow = ('0' + formatDate.getHours()).substr(-2);
		var days = formatDate.getDate();
		var months = formatDate.getMonth() + 1;
		var years = formatDate.getFullYear();
		
		
		// 进行比较
		if(years <= nowYears){
			//今年的数据
			if(years == nowYears){
				// 比较月份
				if(months == nowMonths){
					// 比较日
					if(days == nowDays){
						// 一天以内
						// 比较小时
						if (nowHours == hours){
							// 一小时内
							if(minutes == nowMinutes){
								return '1分钟前'
							}else if(minutes < nowMinutes){
								return (nowMinutes - minutes) + '分钟前';
							}else {
								// 走到这里逻辑上也是不通的,可做其他处理
								return false;
							}
						}else if(hours < nowHours){
							//一个小时以内
							if(((nowHours - hours)*60 - minutes + nowMinutes) < 60){
								return (nowHours - hours)*60 - minutes + nowMinutes + '分钟前'; 
							}else {
								return hoursShow + ':' + minutesShow; 
							}
						}else{
							// 走到这里逻辑上也是不通的,可做其他处理
							return false;
						}
					}else if(days < nowDays){
						// 昨天的数据
						if((nowDays - days) == 1){
							return '昨天' + hoursShow + ':' + minutesShow;
						}else {
							return months + '月' + days + '日';
						}
					}else {
						// 走到这里逻辑上也是不通的,可做其他处理
						return false;
					}
				}else if (months < nowMonths){
					// 5月6日
					return months + '月' + days + '日';
				}else {
					// 走到这里逻辑上也是不通的,可做其他处理
					return false;
				}
			}else {
				// 不是今年的,直接返回 xxxx年xx月xx日
				return years + '年' + months + '月' + days + '日';
			}
		}else {
			// 逻辑上该时间对象为今年以后的,逻辑走不通,该数据有问题,可做其他处理
			return false;
		}
	}
}

这个是写在一个date.js自定义文件里面

<script>
	import utilDate from'@/util/date.js'
</script>

可以在vue里面引用,直接用utilDate.convertDate(时间对象)就可以用了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值