在项目中用到的一些公共方法

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());
    }
});

  

 

原文地址:https://www.cnblogs.com/A-R-E-S/p/10482161.html