vue 日期转今天,昨天

1 篇文章 0 订阅
1 篇文章 0 订阅

前言

根据后台返回的日期,转化为今天,昨天,日期展示在前端的函数
可用于vue , uniapp , js , 原生微信小程序 项目使用中。
在这里插入图片描述

代码如下(示例):

formatDateIn(date, format) {
	var formatDate = function(time, cFormat) {
		if (!time) {
			return
		}
		if (arguments.length === 0) {
			return null;
		}
		var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';
		var date;
		if (typeof time === 'object') {
			date = time;
		} else if (typeof time === 'string') {
			var regTime = getRegExp('[-,年,月,日]', 'g');
			time = time.replace(regTime, "/");
			date = getDate(time);
		} else {
			 if (typeof time === 'number') {
			     if ((time + '').length === 10) {
			         time = +time * 1000;
			      }
			 	date = getDate(parseInt(time));
			 } else {
			     date = getDate(time);
			 }
		}
		var formatObj = {
			y: date.getFullYear(),
			m: date.getMonth() + 1,
			d: date.getDate(),
			h: date.getHours(),
			i: date.getMinutes(),
			s: date.getSeconds(),
			a: date.getDay()
		};
		var regFormat = getRegExp('{(y|m|d|h|i|s|a)+}', 'g');
		var time_str = format.replace(regFormat, function (result, key) {
			var value = formatObj[key];
			if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1];
			if (result.length > 0 && value < 10) {
			    value = '0' + value;
			 }
			return value || 0;
		});
		return time_str;
	}
	var now = getDate();
	var nowDay = getDate(formatDate(now, format));
	var yesterday = Date.parse(nowDay) - (24 * 3600 * 1000);
	// date = new Date(date);
	if (formatDate(Date.parse(now), format) === formatDate(date, format)) {
		return '今天';
	} else if (formatDate(yesterday, format) === formatDate(date, format)) {
		return '昨天'
	} else {
		return formatDate(date, format);
	}		       
}
// js或者html调用 
formatDateIn('2021-01-01 00:00:00','{y}-{m}-{d}')
// 日期转星期几
getWeek(dateString) {
	if(dateString) {
		let dateArray01 = dateString.split(" ")[0];
		let dateArray02 = dateArray01.split("-");
		let date = new Date(dateArray02[0], parseInt(dateArray02[1] - 1), dateArray02[2]);
		return "周" + "日一二三四五六".charAt(date.getDay());
		} 
},

若果列表渲染,同一天日期有多个,循环列表记录是否第一次出现,页面中可根据v-if判断item.firstDate展示合并相同日期

let list = [] // 后台返回的数据
const markMap = {};
list .forEach((item, i) => {
     const date = formatDate.formatDate(item.date, `{y}-{m}-{d}`);
     if (markMap[date] === undefined) {
        markMap[date] = i
        item.firstDate = true;
       }
 })

欢迎评论点赞收藏哦

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值