• 取所选当前时间前十二个月的数据


    核心代码参考: https://blog.csdn.net/u014175572/article/details/54890964

    根据用户选定的时间点(年、月)、取该时间前十二个月的数据显示。思路:①获取用户选定的时间、传入后台、计算好时间段、放入数据库搜索条件、获得数据。②后台直接获取到该时间段内(年)、取两年时间的数据、前台根据获得的(月)进行推算、获得符合的前十二个月的年月、与后台获取数据进行时间匹配、显示数据。

    我这里是第二种处理方式。

     使用场景:

    用户在提供的年、月时间控件上选择想查看的时间点的数据、并期望可以对比此前十二月的数据。

    ①。后台根据传入的年份(int year)进行数据选择(var sql = "select * from DBTable where [Year] between" + year-1 "and"+ year +"order by [Year] asc, [Month] asc")、即根据用户选择的年份从数据库获取这个年份上一年的数据也筛选出来。比如:用户选择的是2018年1月、那么我们从后台取出2018年及2017年的数据。

    ②。将后台传出的数据、只显示我们想要的数据

     getLast12Months: function (data,y, m) {   //data:获取的2017、2018的数据(未筛选的);y:year用户选择的年份;m:month用户选择的月份
            var d = new Date(y,m);               //将年月时间格式化
            var last12Months = [];                //符合该年月此前十二个月的年月
            for (var k = 0; k < 12; k++) {
                d.setMonth(d.getMonth()-1);
                var month = d.getMonth() + 1;
                last12Months.push(d.getFullYear() + "-" + month);  //格式为:年-月(如:2018-1)
            }
    
            var sin12Data = data;
            var last12Datas = [];          //筛选出十二个月数据
            for (var i = last12Months.length - 1; i >= 0; i--) {
                var lastMonth = last12Months[i];
                for (var j = 0; j < sin12Data.length; j++) {
                    var dataYM = sin12Data[j].Year + "-" + sin12Data[j].Month;
                    if (lastMonth === dataYM) {                  //比如有 “2018-1” === “2018-1”
                        last12Datas.push(sin12Data[j]);   //把这条数据存入last12Datas即可
                    }
                }
            }
            return last12Datas;
        }
  • 相关阅读:
    MFC开发编程规范(二)
    Mysql日期和时间函数大全(转)
    php获取客户端IP地址的几种方法
    postgres 查看数据表和索引的大小
    PHP应用memcache函数详解
    css自动截取文字 兼容IE firefox Opera
    JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
    Zend_Auth与Zend_Acl访问控制链
    去除所有js,html,css代码问题
    [转]那些相见恨晚的 JavaScript 技巧
  • 原文地址:https://www.cnblogs.com/GuliGugaLiz/p/8718277.html
Copyright © 2020-2023  润新知