输入时间,转为今天明天昨天,上周本周下周,yyy-mm-dd格式

注:针对2024-05-01这种格式,如果要是用则先转格式

会和今天 的时间做对比,
然后返回昨天,今天,明天,上周几,下周几,本周几,
如果是在本年则显示mm-dd,如果不在本年则显示yyyy-mm-dd

			 compareDate(inputDate) {
			        var today = new Date();
			          var input = new Date(inputDate);
			      
			          // 将输入日期和今天日期的时分秒设置为0
			          input.setHours(0, 0, 0, 0);
			          today.setHours(0, 0, 0, 0);
			      
			          var oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数
			          var todayDayOfWeek = today.getDay(); // 获取今天是一周中的哪一天(0是周日,1是周一)
			      
			          // 计算本周、上周、下周的起始和结束日期
			          var startOfThisWeek = new Date(today - (todayDayOfWeek === 0 ? 6 : todayDayOfWeek - 1) * oneDay);
			          var endOfThisWeek = new Date(startOfThisWeek.getTime() + 6 * oneDay);
			          var startOfLastWeek = new Date(startOfThisWeek.getTime() - 7 * oneDay);
			          var endOfLastWeek = new Date(startOfLastWeek.getTime() + 6 * oneDay);
			          var startOfNextWeek = new Date(endOfThisWeek.getTime() + oneDay);
			          var endOfNextWeek = new Date(startOfNextWeek.getTime() + 6 * oneDay);
			      
			          var daysOfWeek = ["日", "一", "二", "三", "四", "五", "六"];
			          var diffDays = (input - today) / oneDay; // 计算差值天数
			      
			          // 检查是否是同一年
			          var sameYear = today.getFullYear() === input.getFullYear();
			      
			          // 基础逻辑判断
			          if (diffDays === 0) {
			              return "今天";
			          } else if (diffDays === 1) {
			              return "明天";
			          } else if (diffDays === -1) {
			              return "昨天";
			          } else if (input >= startOfThisWeek && input <= endOfThisWeek) {
			              return "本周" + daysOfWeek[input.getDay()];
			          } else if (input >= startOfNextWeek && input <= endOfNextWeek) {
			              return "下周" + daysOfWeek[input.getDay()];
			          } else if (input >= startOfLastWeek && input <= endOfLastWeek) {
			              return "上周" + daysOfWeek[input.getDay()];
			          } else { 
			              // 日期不在本周、上周、下周、今天、明天、昨天,检查是否本年
			              if (sameYear) {
							  return `${(input.getMonth() + 1).toString().padStart(2, '0')}-${input.getDate().toString().padStart(2, '0')}`;  // 本年,返回 mm-dd
			              } else {
							  return `${input.getFullYear()}-${(input.getMonth() + 1).toString().padStart(2, '0')}-${input.getDate().toString().padStart(2, '0')}`;  // 非本年,返回 yyyy-mm-dd
			              }
			          }
			},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值