zoukankan      html  css  js  c++  java
  • 在项目中用到的一些公共方法

    1.通过路径传值,得到值:

    function GetQueryString(name) {
    //name为键 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }

    2.数字保留N位小数

    //统计分析保留小数函数(四舍五入)
    function round2(number, fractionDigits) {
    //number表示的是原值,fractionDigits表示的是保留N位小数 with (Math) { return round(number * pow(10, fractionDigits)) / pow(10, fractionDigits); } }

    3.以日期生成主键

    //生成主键规则:前缀+中缀+后缀
    // prefix表示前缀可传可为空,infix中缀分为年月日、年月、年的格式因此只需要传"yyyyMMdd","yyyyMM","yyyy",postfix后缀可能为时分秒、随机数因此需要传"hhmmss","rnd"
    function SetDefaultCode(prefix, infix, postfix)
    {
        var ID = prefix
        switch (infix)
        {
            case "yyyyMMdd":
                ID += new Date().Format(infix);
                break;
            case "yyyyMM":
                ID += new Date().Format(infix);
                break;
            default:
                ID += new Date().Format(infix);
                break;
        }
        switch (postfix)
        {
            case "hhmmss":
                var now = new Date();
                var hh = now.getHours();            //时
                var mm = now.getMinutes();          //分
                var ss = now.getSeconds();          //分
                var clock ="";
                if (hh < 10)
                    clock += "0";
                clock += hh;
                if (mm < 10)
                    clock += '0';
                clock += mm;
                if (ss < 10)
                    clock += '0';
                clock += ss;
                return (ID+=clock);
                break;
            case "rnd":
                ID += Math.random().toString().substr(3,3)
                break;
            default:
                break;
        }
               return ID;
    }
    

    4.导出Excel

    /// <summary>
            /// 用于Web导出
            /// </summary>
            /// <param name="dtSource">源DataTable</param>
            /// <param name="strHeaderText">表头文本</param>
            /// <param name="headers">需要导出的列的列头</param>
            /// <param name="cellKes">需要导出的对应的列字段</param>
            /// <param name="strFileName">文件名</param>
            public static void ExportByWeb(DataTable dtSource, string strHeaderText, string[] headers, string[] cellKes, string strFileName)
            {
                HttpContext curContext = HttpContext.Current;
    
                // 设置编码和附件格式
                curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.ContentEncoding = Encoding.UTF8;
                curContext.Response.Charset = "";
                curContext.Response.AppendHeader("Content-Disposition",
                    "attachment;filename=" + HttpUtility.UrlEncode(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + strFileName, Encoding.UTF8));
    
                curContext.Response.BinaryWrite(ExcelUtil.Export(dtSource, strHeaderText, headers, cellKes).GetBuffer());
                curContext.Response.End();
            }
            /// <summary>
            /// 用于Web导出
            /// </summary>
            /// <param name="dtSource">源DataTable</param>
            /// <param name="strHeaderText">表头文本</param>
            /// <param name="headers">需要导出的列的列头</param>
            /// <param name="cellKes">需要导出的对应的列字段</param>
            /// <param name="strFileName">文件名</param>
            ///<param name="ExcelValuesJson">特殊字段json字符串</param> 
            public static void ExportByWeb(DataTable dtSource, string strHeaderText, string[] headers, string[] cellKes, string strFileName, string ExcelValuesJson)
            {
                HttpContext curContext = HttpContext.Current;
                // 设置编码和附件格式
                curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.ContentEncoding = Encoding.UTF8;
                curContext.Response.Charset = "";
                curContext.Response.AppendHeader("Content-Disposition",
                    "attachment;filename=" + HttpUtility.UrlEncode(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + strFileName, Encoding.UTF8));
                curContext.Response.BinaryWrite(ExcelUtil.ExportTo(dtSource, strHeaderText, headers, cellKes, ExcelValuesJson).GetBuffer());
                curContext.Response.End();
            }
    

    5.对于时间戳的处理

    $.fn.extend({
        /*
        ** author:lttr
        ** day:2018-02-01
        ** 时间戳显示为【不久前,刚刚,N分钟前,N小时前,N天前,N周前,N月前,N年N月N日】的处理
        ** eg.
        ** $('1517451000000').commonTimeStamp();  // 2018年02月01日
        ** $(new Date('2018-02-01 15:10:00').getTime()).commonTimeStamp();  // 1分钟前
        ** $("/Date(1517469000000)/".replace(/[^0-9]/ig, "")).commonTimeStamp();  // 1分钟前
        */
        "commonTimeStamp": function () {
            // 补全为13位
            var oneselfTime = (this.selector || $(this)[0] + '').split(''),
                zero = function (value) {  // 数值补0方法
                    if (value < 10) {
                        return '0' + value;
                    }
                    return value;
                };
            for (var start = 0; start < 13; start++) {
                if (!oneselfTime[start]) {
                    oneselfTime[start] = '0';
                }
            }
            oneselfTime = oneselfTime.join('') * 1;
            var diffValue = new Date().getTime() - oneselfTime;
    
            // 如果本地时间反而小于变量时间
            if (diffValue < 0) {
                return '<span class="badge badge">不久前</span>';
            }
    
            // 计算差异时间的量级
            var arrTimeDiff = {
                monthC: diffValue / 2592000000,
                weekC: diffValue / 604800000,
                dayC: diffValue / 86400000,
                hourC: diffValue / 3600000,
                minC: diffValue / 60000,
            };
    
            // 使用
            if (arrTimeDiff.monthC > 12) {
                // 超过1年,直接显示年月日
                return (function () {
                    var date = new Date(oneselfTime);
                    return '<span class="badge badge">' + date.getFullYear() + '年' + zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日</span>';
                })();
            } else if (arrTimeDiff.monthC >= 1) {
                return '<span class="badge badge">' + parseInt(arrTimeDiff.monthC) + '月前</span>';
            } else if (arrTimeDiff.weekC >= 1) {
                return '<span class="badge badge-primary">' + parseInt(arrTimeDiff.weekC) + '周前</span>';
            } else if (arrTimeDiff.dayC >= 1) {
                return '<span class="badge badge-info">' + parseInt(arrTimeDiff.dayC) + '天前</span>';
            } else if (arrTimeDiff.hourC >= 1) {
                return '<span class="badge badge-warning">' + parseInt(arrTimeDiff.hourC) + '小时前</span>';
            } else if (arrTimeDiff.minC >= 1) {
                return '<span class="badge badge-success">' + parseInt(arrTimeDiff.minC) + '分钟前</span>';
            }
            return '<span class="badge badge-danger">刚刚</span>';
        },
        /*
         ** author:lttr
         ** day:2018-02-05
         ** 首页消息时间戳显示为【不同颜色处理】的处理
         ** eg.
         ** $('1517451000000').IndexMesTimeStamp();  // 2018年02月01日
         ** $(new Date('2018-02-01 15:10:00').getTime()).IndexMesTimeStamp();  // 1分钟前
         ** $("/Date(1517469000000)/".replace(/[^0-9]/ig, "")).IndexMesTimeStamp();  // 1分钟前
         */
        "IndexMesTimeStamp": function () {
            // 补全为13位
            var oneselfTime = (this.selector || $(this)[0] + '').split(''),
                zero = function (value) {  // 数值补0方法
                    if (value < 10) {
                        return '0' + value;
                    }
                    return value;
                };
            for (var start = 0; start < 13; start++) {
                if (!oneselfTime[start]) {
                    oneselfTime[start] = '0';
                }
            }
            oneselfTime = oneselfTime.join('') * 1;
            var diffValue = new Date().getTime() - oneselfTime;
    
            // 如果本地时间反而小于变量时间
            if (diffValue < 0) {
                return '不久前';
            }
    
            // 计算差异时间的量级
            var arrTimeDiff = {
                monthC: diffValue / 2592000000,
                weekC: diffValue / 604800000,
                dayC: diffValue / 86400000,
                hourC: diffValue / 3600000,
                minC: diffValue / 60000,
            };
    
            // 使用
            if (arrTimeDiff.monthC > 12) {
                // 超过1年,直接显示年月日
                return (function () {
                    var date = new Date(oneselfTime);
                    return '<span class="badge badge" style="6px;height:6px;border-radius:15px;display:block;margin-top:3px">' + date.getFullYear() + '年' + zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日</span>';
                })();
            } else if (arrTimeDiff.monthC >= 1) {
                return '<span  style="background: #f69b86;" class="span-box DimGray">' + parseInt(arrTimeDiff.monthC) + '月前</span>';
            } else if (arrTimeDiff.weekC >= 1) {
                return '<span  style="background: #4dbec4;" class="span-box green">' + parseInt(arrTimeDiff.weekC) + '周前</span>';
            } else if (arrTimeDiff.dayC >= 1) {
                return '<span  style="background: #16a9fa;" class="span-box blue">' + parseInt(arrTimeDiff.dayC) + '天前</span>';
            } else if (arrTimeDiff.hourC >= 1) {
                return '<span style="background: red;" class="span-box red">' + parseInt(arrTimeDiff.hourC) + '小时前</span>';
            } else if (arrTimeDiff.minC >= 1) {
                return '<span style="background: red;" class="span-box red" >' + parseInt(arrTimeDiff.minC) + '分钟前</span>';
            }
            return '<span class="span-box red"></span>';
        },
        /*
        ** author:lttr
        ** day:2018-02-01
        ** 时间戳显示为【今天 上午10:10,今天 下午15:10,昨天 上午10:10,昨天 下午15:10,上午10:10,下午15:10】的处理
        ** eg.
        ** $('1517451000000').specificTimeStamp();  // 今天 上午10:10
        ** $(new Date('2018-02-01 15:10:00').getTime()).specificTimeStamp();  // 今天 下午15:10
        ** $("/Date(1517469000000)/".replace(/[^0-9]/ig, "")).specificTimeStamp();  // 今天 下午15:10
        */
        "specificTimeStamp": function () {
            var oneselfTime = this.selector - 0 || $(this)[0],
                parTime = new Date(oneselfTime),
                now = new Date(),
                diffDay = parseInt((new Date().getTime() - oneselfTime) / 86400000);// 天1000 * 60 * 60 * 24
            // 使用
            return (diffDay == 1 ? "昨天 " : diffDay == 0 ? "今天 " : "") +
                   ((parTime.getHours() / 12 > 1 ? "下午" : "上午") +
                   Array(2 - ('' + parTime.getHours()).length + 1).join(0) + parTime.getHours() + ":" +
                   Array(2 - ('' + parTime.getMinutes()).length + 1).join(0) + parTime.getMinutes());
        }
    });
    

      

     

  • 相关阅读:
    十二、redis常用的运维命令及注意参数
    十一,redis的主从集群
    十、redis的持久化配置
    九、Redis的消息发布和订阅
    八、Redis 中的事务
    apache、nginx、iis日志记录的各个字段内容与含义
    Pikachu-RCE
    Pikachu-SQL-Inject(SQL注入漏洞)
    Pikachu-CSRF(跨站请求伪造)
    Pikachu-XSS(跨站脚本)漏洞
  • 原文地址:https://www.cnblogs.com/A-R-E-S/p/10482161.html
Copyright © 2011-2022 走看看