js时间格式转化处理,vue.js时间转化为今天,明天,后天显示

前端在日常开发中经常需要对时间进行一系列的处理,比如吧正常时间转化为昨天,今天,明天,后天等方式显示,其余时间显示月份日期,时间等,这时候写一个公共方法来转化,即高效又优雅,话不多说,看代码,注释都在代码里了
在这里插入图片描述
在这里插入图片描述

//后台获取时间列表:
getList() {
	let project = [
	        {
	          name: "京东当日达",
	          time: "2022-07-04 10:32:16",
	          price: "30.00",
	        },
	        {
	          name: "京东次日达",
	          time: "2022-07-05 11:52:16",
	          price: "26.00",
	        },
	        {
	          name: "京东特快送",
	          time: "2022-07-06 13:30:16",
	          price: "20.00",
	        },
	        {
	          name: "京东超快送",
	          time: "2022-07-08 08:08:16",
	          price: "18.00",
	        },
	        {
	          name: "京东配送",
	          time: "2022-07-12 23:59:16",
	          price: "12.00",
	        }
	      ];
	project.forEach((item) => {
	  item.myTime = this.getTime(item.time);
	});
},

//时间格式进行处理
getTime(strtime) {
      let date = new Date(strtime.replace(/-/g, "/"));
      // date 预计送达时间戳
      date = Date.parse(date); 
      // 转为国际标准时间
      let time = new Date(parseInt(date)); 
      // 一共相差几天
      let days = parseInt((date - new Date().getTime()) / 86400000); 
      // 今天是几号
      let today = new Date().getDate(); 
      let mouth = time.getMonth() + 1;
      // 预计送达是几号
      let day = time.getDate(); 
      let hour = time.getHours() < 10 ? "0" + time.getHours() : time.getHours();
      let min = time.getMinutes() < 10 ? "0" + time.getMinutes() : time.getMinutes();
      // offset 送达日期-今天日期差
      let offset = Math.abs(day - today);
      let obj = {
        // 日期
        date: "",
        // 具体时间
        time: hour + ":" + min,
      };
      // 这里双重判断,第一个判断days < 3是验证是否在同一个月,第二个offset < 3是判断是验证相差是几天
      if (days < 3 && offset < 3) {
        if (offset === 0) {
          obj.date = "今天";
        } else if (offset === 1) {
          obj.date = "明天";
        } else if (offset === 2) {
          obj.date = "后天";
        }
      } else {
        obj.date = mouth + "月" + day + "日"
      }
      return obj;
},

组件经常用到建议收藏,写的比较简单,有复制业务逻辑扩展起来也方便,觉得有用记得一键三连哈!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端攻城狮路飞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值