开发需求总结19-vue 根据后端返回一年的数据,过滤出符合条件数据

server/2024/11/28 18:48:06/

需求描述:

定义时间分界点:每月26号8点,过了26号8点则过滤出data数组中符合条件数据下个月的数据,否则过滤出当月数据

1.假如现在是2024年11月14日,那么过滤出data数组中日期都是2024-11月的数据;

2.假如现在是2024年11月26号8点之后,那么就过滤出data数组中11月之后下个月的数据,也就是12月的数据。

后端返回数据:

返回如下格式,过滤出符合需求条件的数据

javascript">let data = [{month: '2023-12', name: '111'}, {month: '2023-12', name: '111'}, {month: '2023-12', name: '111'}, {month: '2024-12', name: '111'},{month: '2023-11', name: '111'}, {month: '2023-11', name: '111'}, {month: '2023-11', name: '111'}, {month: '2024-11', name: '111'},{month: '2023-10', name: '111'},{month: '2023-10', name: '111'},{month: '2023-10', name: '111'},{month: '2024-10', name: '111'},{month: '2023-09', name: '111'}, {month: '2023-09', name: '111'},{month: '2023-09', name: '111'}, {month: '2024-09', name: '111'},{month: '2023-08', name: '111'}, {month: '2023-08', name: '111'},{month: '2023-08', name: '111'},{month: '2024-08', name: '111'},{month: '2023-07', name: '111'}, {month: '2023-07', name: '111'},{month: '2023-07', name: '111'},{month: '2024-07', name: '111'},{month: '2023-06', name: '111'}, {month: '2023-06', name: '111'},{month: '2023-06', name: '111'},{month: '2024-06', name: '111'},{month: '2023-05', name: '111'}, {month: '2023-05', name: '111'}, {month: '2023-05', name: '111'}, {month: '2024-05', name: '111'},{month: '2023-04', name: '111'}, {month: '2023-04', name: '111'},{month: '2023-04', name: '111'},{month: '2024-04', name: '111'},{month: '2023-03', name: '111'}, {month: '2023-03', name: '111'}, {month: '2023-03', name: '111'}, {month: '2024-03', name: '111'},{month: '2023-02', name: '111'}, {month: '2023-02', name: '111'}, {month: '2023-02', name: '111'}, {month: '2024-02', name: '111'},{month: '2023-01', name: '111'}, {month: '2023-01', name: '111'}, {month: '2023-01', name: '111'}, {month: '2024-01', name: '111'}
]

代码实现:

javascript">// 定义数据数组(这里只展示部分,完整数据请看上方)
let data = [{month: '2023-12', name: '111'},// ... (其他数据项){month: '2024-11', name: '111'}// ... (确保包含2024-12的数据以测试下个月的情况)
];// 获取当前日期和时间
var now = new Date();
var currentYear = now.getFullYear();
var currentMonth = now.getMonth() + 1; // 注意月份从0开始,需要加1
var currentDay = now.getDate();
var currentHour = now.getHours();// 定义分界点日期和时间
var cutoffDay = 26;
var cutoffHour = 8;// 根据当前日期和时间以及分界点确定要过滤的月份
function getTargetMonth(currentYear, currentMonth, currentDay, currentHour, cutoffDay, cutoffHour) {if (currentDay < cutoffDay || (currentDay === cutoffDay && currentHour < cutoffHour)) {// 如果今天在当前月的26号8点之前return currentYear + '-' + String(currentMonth).padStart(2, '0');} else {// 如果今天在当前月的26号8点或之后var nextMonth = (currentMonth % 12 === 0) ? 1 : currentMonth + 1;var nextYear = (currentMonth === 12) ? currentYear + 1 : currentYear; // 更简洁的判断下一年return nextYear + '-' + String(nextMonth).padStart(2, '0');}
}// 获取目标月份字符串
var targetMonth = getTargetMonth(currentYear, currentMonth, currentDay, currentHour, cutoffDay, cutoffHour);// 过滤数据数组,只保留目标月份的数据
var filteredData = data.filter(function(item) {return item.month === targetMonth;
});// 输出结果(在实际应用中,你可能会将这些数据用于渲染或其他逻辑)
console.log('当前日期和时间:', now.toLocaleString());
console.log('目标月份:', targetMonth);
console.log('过滤后的数据:', filteredData);

注意

        可能存在跨年份的情况(例如,从12月8点后过滤到次年的1月)。


http://www.ppmy.cn/server/145694.html

相关文章

Python爬虫爬取数据报错

报错&#xff1a; Error fetching the URL: (Connection aborted., ConnectionResetError(10054, 远程主机强迫关闭了一个现有的连接。, None, 10054, None)) 报错原因&#xff1a; 目标服务器限制&#xff1a; 目标网站可能已经检测到你的请求来自自动化工具&#xff08;如爬虫…

Rust语言俄罗斯方块(漂亮的界面案例+详细的代码解说+完美运行)

tetris-demo A Tetris example written in Rust using Piston in under 500 lines of code 项目地址: https://gitcode.com/gh_mirrors/te/tetris-demo 项目介绍 "Tetris Example in Rust, v2" 是一个用Rust语言编写的俄罗斯方块游戏示例。这个项目不仅是一个简单…

go-zero(十一) 日志

go zero 日志 日志可以帮助我们记录应用程序的运行时信息、错误和调试信息&#xff0c;是个非常实用的工具。 一、基本介绍 1.logc和logx go zero的日志主要由两个组件组成logx和logc. logx 是go zero提供的核心日志库&#xff0c;它负责实际的日志记录工作。该组件支持多…

局域网的网络安全

网络安全 局域网基本上都采用以广播为技术基础的以太网&#xff0c;任何两个节点之间的通信数据包&#xff0c;不仅为这两个节点的网卡所接收&#xff0c;也同时为处在同一以太网上的任何一个节点的网卡所截取。因此&#xff0c;黑客只要接入以太网上的任一节点进行侦听&#…

代码随想录算法训练营第十一天(LeetCode150.逆波兰表达式求值;LeetCode239.滑动窗口最大值;LeetCode347.前K个高频元素)

LeetCode 150. 逆波兰表达式求值 题目链接&#xff1a;逆波兰表达式求值题目链接 思路 主要是要理解逆波兰表达式的定义&#xff0c;在理解了逆波兰表达式的定义后&#xff0c;使用栈就可以直接做了。 逆波兰表达式是一种后缀表达式&#xff0c;所谓后缀就是指运算符写在后面…

2024年第15届蓝桥杯C/C++组蓝桥杯JAVA实现

目录 第一题握手&#xff0c;这个直接从49累加到7即可&#xff0c;没啥难度&#xff0c;后面7个不握手就好了&#xff0c;没啥讲的&#xff0c;(然后第二个题填空好难&#xff0c;嘻嘻不会&#xff09; 第三题.好数​编辑 第四题0R格式 宝石组合 数字接龙 最后一题:拔河 第…

java实现将图片插入word文档

插入图片所用依赖 private static void insertImage(XWPFDocument document, String path) {List<XWPFParagraph> paragraphs document.getParagraphs();for (XWPFParagraph paragraph : paragraphs) {CTP ctp paragraph.getCTP();for (int dwI 0; dwI < ctp.sizeO…

C#基础41-45

41. 利用如下所示的简单迭代方法求方程&#xff1a;cos(x)-x0的一个实根。xn1cos(xn)迭代步骤如下&#xff1a; &#xff08;1&#xff09;取X1初值为0.0&#xff1b; &#xff08;2&#xff09;X0X1&#xff0c;把X1的值赋给X0&#xff1b; &#xff08;3&#xff09;X1COS&am…