logo
当前位置:首 页 > 编程技术 >前端开发 >JavaScript > 查看文章

最近服务器的日志显示处理和计算时间变长了,这个是是好事,表示业务量变大了。但是对于我们程序来说可能是需要处理的大事,所以要着手开始优化程序了。首先是去除多余的冗余查询。reviewcode后发现有个页面用到了echart。但是同事用了同步数据获取和foreach查询数据库。再就是发现页面的数据异步请求一次在进行数据筛选就可以了,但是会涉及到前端的页面时间的操作,所以记录下:

 

js通过时间戳得到今天/今天零点/昨天/本周/上周/本月/上月/本年/去年的时间

 

 

// 判断选择的时间 得到 开始时间和结束时间
            function dateDispose(props: number) {
//当前时间
                const nowDate = parseInt((new Date().getTime() / 1000).toString()); //当前时间
// 当前零点的时间
                let zeroDate = nowDate - (nowDate % 86400) - 3600 * 8;
//过去24小时
                let formerlyDate = nowDate - 86400;
//昨天 昨天00:00:00的时间
                let yesterday = nowDate - (nowDate % 86400) - 3600 * 8 - 3600 * 24;
//本周星期一的时间
                let nowThisWeek = new Date().getDay(); //获取当前周
                let a = nowDate - (nowThisWeek - 1) * 86400; //得到当前时间到这周
                let thisWeek = a - (a % 86400) - 3600 * 8;
//上周星期一的时间
                let lastWeek = thisWeek - 86400 * 7;
//过去七天
                let formerlySeven = nowDate - 86400 * 7;
//本月的的开始时间
                let MonthDate: any = new Date();
                MonthDate.setDate(1); //set设置时间
                MonthDate.setHours(0);
                MonthDate.setSeconds(0);
                MonthDate.setMinutes(0);
                let thisMonth = parseInt((MonthDate / 1000).toString());
//获取过去30天时间
                let lastMonth = nowDate - 86400 * 30;
//获取上月时间
                let nowMonthDate: any = new Date();
                let getMonth = nowMonthDate.getMonth() + 1;
                nowMonthDate.setMonth(getMonth - 2);
                nowMonthDate.setDate(1); //set设置时间
                nowMonthDate.setHours(0);
                nowMonthDate.setSeconds(0);
                nowMonthDate.setMinutes(0);
                let nowMonth = parseInt((nowMonthDate / 1000).toString());
//获取本年开始的时间
                let yearDate: any = new Date();
                yearDate.setMonth(0);
                yearDate.setDate(1); //set设置时间
                yearDate.setHours(0);
                yearDate.setSeconds(0);
                yearDate.setMinutes(0);
                let thisYear = parseInt((yearDate / 1000).toString());
//获取过去12个月的时间
                let now12Date: any = new Date();
                let getYear12 = now12Date.getFullYear();
                now12Date.setYear(getYear12 - 1);
                let formerlyYear = parseInt((now12Date / 1000).toString());
//获取上一个年度的开始时间
                let nowYearDate: any = new Date();
                let getYear = nowYearDate.getFullYear();
                nowYearDate.setYear(getYear - 1);
                nowYearDate.setMonth(0);
                nowYearDate.setDate(1); //set设置时间
                nowYearDate.setHours(0);
                nowYearDate.setSeconds(0);
                nowYearDate.setMinutes(0);
                let lastYear = parseInt((nowYearDate / 1000).toString());
 
//getBeginEndTime()是封装的ajax请求方法
                console.log("当前时间", formerlyYear);
                switch (props) {
                    case 0: //今天
                        getBeginEndTime(zeroDate, nowDate);
                        break;
                    case 1: //过去24
                        getBeginEndTime(formerlyDate, nowDate);
                        break;
                    case 2: //昨天
                        getBeginEndTime(yesterday, zeroDate);
                        break;
                    case 3: //本周
                        getBeginEndTime(thisWeek, nowDate);
                        break;
                    case 4: //上周
                        getBeginEndTime(lastWeek, thisWeek);
                        break;
                    case 5: //过去七天
                        getBeginEndTime(formerlySeven, nowDate);
                        break;
                    case 6: //本月
                        getBeginEndTime(thisMonth, nowDate);
                        break;
                    case 7: //过去30天
                        getBeginEndTime(lastMonth, nowDate);
                        break;
                    case 8: //上月
                        getBeginEndTime(nowMonth, thisMonth);
                        break;
                    case 9: //本年时间
                        getBeginEndTime(thisYear, nowDate);
                        break;
                    case 10: //过去12个月的时间
                        getBeginEndTime(formerlyYear, nowDate);
                        break;
                    case 11: //上一年度的时间
                        getBeginEndTime(lastYear, thisYear);
                        break;
                    default:
                        break;
                }
            }

 

 

 

 

 

 

 

 

 

 

说说梦想,谈谈感悟 ,聊聊技术,有啥要说的来github留言吧 https://github.com/cjx2328

—— 陈 建鑫

陈建鑫
你可能也喜欢Related Posts
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容。站长联系:cjx2328#126.com(修改#为@)
Copyright ©ziao Studio All Rights Reserved. E-mail:cjx2328#126.com(#号改成@) 沪ICP备14052271号-3