vue通过年-月-日,年-月,年搜索数据

话不多说,直接进入正题

因为我的搜索是搜索昨日,上月,本月,本年的数据

所以在搜索之前需要先获取到昨日,上月,本月,本年的日期,如下:

javascript 复制代码
function getDate() {
    var lastMonth = new Date(
      new Date().getFullYear(),
      new Date().getMonth() - 1,
      new Date().getDate()
    ); // 获取上个月日期
    var currentMonth = new Date().getMonth() + 1; // 获取本月
    date.year = new Date().getFullYear(); // 获取本年
    date.lastYear = new Date().getFullYear() -1;
    date.lastMonth = lastMonth.toISOString().slice(0, 7); // 格式化上个月日期
    date.month = date.year + '-' + (currentMonth < 10 ? '0' + currentMonth : currentMonth); // 格式化本月日期
    var yesterday = new Date();
    yesterday.setDate(yesterday.getDate() - 1);
    date.yesterday = yesterday.toISOString().slice(0, 10);
    console.log('昨日' + date.yesterday);
    console.log('上月:' + date.lastMonth);
    console.log('本月:' + date.month);
    console.log('本年:' + date.year);
    console.log('去年'+ date.lastYear);;
  }

date是我已经定义好的一个reactive

javascript 复制代码
  const date = reactive({
    yesterday: '',
    lastMonth: '',
    month: '',
    year: '',
    lastYear:''
  });

接下来开始搜索

data_date的格式一直都是xxxx-xx-xx

1,首先是搜索昨日的

比如说昨日的数据为:2024-02-27,变量名为date.yesterday

这个arr就是你要搜索的数组

javascript 复制代码
 let yeArr = arr.filter((item) => item.data_date == date.yesterday);
 //根据自己的date.yesterday与数组中的data_date进行比较,把相等的筛选出来
 //此时这个yeArr就是筛选后的数组

2,接下来是搜索上个月的数据,变量名为date.lastMonth,

还是跟arr中每一项的data_date进行匹配

javascript 复制代码
var yearMonth = date.lastMonth.split('-').map(Number);
    var filteredDateObjects = arr.filter(function (obj) {
      var dateYearMonth = obj.data_date.split('-').slice(0, 2).map(Number);
      return dateYearMonth[0] === yearMonth[0] && dateYearMonth[1] === yearMonth[1];
    });
     //最后搜索到的数据为filteredDateObjects

3,本月

javascript 复制代码
var nowMonth = date.month.split('-').map(Number);
    var filteredDateObjects = arr.filter(function (obj) {
      var dateYearMonth = obj.data_date.split('-').slice(0, 2).map(Number);
      return dateYearMonth[0] === nowMonth[0] && dateYearMonth[1] === nowMonth[1];
    });
    //最后搜索到的数据为filteredDateObjects

4,本年

javascript 复制代码
 var testYear = arr.filter(function (obj) {
      var objYear = obj.data_date.split('-')[0];
      return objYear == date.year;
      //这个date.year就是我们当前的年份
    });

5,去年

去年跟今年同理

javascript 复制代码
 var lastsYear = arr.filter(function (obj) {
      var objYear = obj.data_date.split('-')[0];
      return objYear == date.lastYear; 
    });

over,有用的话留下个免费的双击关注吧~

相关推荐
徐子颐5 分钟前
从 Vibe Coding 到 Agent Coding:Cursor 2.0 开启下一代 AI 开发范式
前端
小月鸭17 分钟前
如何理解HTML语义化
前端·html
jump68040 分钟前
url输入到网页展示会发生什么?
前端
诸葛韩信44 分钟前
我们需要了解的Web Workers
前端
brzhang1 小时前
我觉得可以试试 TOON —— 一个为 LLM 而生的极致压缩数据格式
前端·后端·架构
yivifu1 小时前
JavaScript Selection API详解
java·前端·javascript
这儿有一堆花1 小时前
告别 Class 组件:拥抱 React Hooks 带来的函数式新范式
前端·javascript·react.js
十二春秋1 小时前
场景模拟:基础路由配置
前端
六月的可乐1 小时前
实战干货-Vue实现AI聊天助手全流程解析
前端·vue.js·ai编程
一 乐2 小时前
智慧党建|党务学习|基于SprinBoot+vue的智慧党建学习平台(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·学习