• 【JavaScript】日期和数字格式化


    
        var date,
            number;
    
    
        /**
         * 让日期和时间按照指定的格式显示的方法
         * @param date
         * @param formatString  format 格式字符串
         * @returns {*}  返回生成的日期时间字符串
         *
         * @example
         *     var d = new Date();
         *     // 以 YYYY-MM-dd hh:mm:ss 格式输出 d 的时间字符串
         *     J.format.date(d, "YYYY-MM-DD hh:mm:ss");
         */
        date = function (date, formatString) {
            /*
             * eg:formatString="YYYY-MM-DD hh:mm:ss";
             */
            var o = {
                "M+": date.getMonth() + 1,    //month
                "D+": date.getDate(),    //day
                "h+": date.getHours(),    //hour
                "m+": date.getMinutes(),    //minute
                "s+": date.getSeconds(),    //second
                "q+": Math.floor((date.getMonth() + 3) / 3),    //quarter
                "S": date.getMilliseconds()    //millisecond
            };
    
            if (/(Y+)/.test(formatString)) {
                formatString = formatString.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
            }
    
            for (var k in o) {
                if (new RegExp("(" + k + ")").test(formatString)) {
                    formatString = formatString.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
                }
            }
            return formatString;
        };
    
        /**
         * @memberOf format
         * @method number
         * 格式化数字显示方式
         * @param num 要格式化的数字
         * @param pattern 格式
         * @example
         * J.format.number(12345.999,'#,##0.00');
         *  //out: 12,34,5.99
         * J.format.number(12345.999,'0');
         *  //out: 12345
         * J.format.number(1234.888,'#.0');
         *  //out: 1234.8
         * J.format.number(1234.888,'000000.000000');
         *  //out: 001234.888000
         */
        number = function (num, pattern) {
            var strarr = num ? num.toString().split('.') : ['0'];
            var fmtarr = pattern ? pattern.split('.') : [''];
            var retstr = '';
    
    
            // 整数部分
            var str = strarr[0];
            var fmt = fmtarr[0];
            var i = str.length - 1;
            var comma = false;
            for (var f = fmt.length - 1; f >= 0; f--) {
                switch (fmt.substr(f, 1)) {
                    case '' :
                        if (i >= 0)
                            retstr = str.substr(i--, 1) + retstr;
                        break;
                    case '0' :
                        if (i >= 0)
                            retstr = str.substr(i--, 1) + retstr;
                        else
                            retstr = '0' + retstr;
                        break;
                    case ',' :
                        comma = true;
                        retstr = ',' + retstr;
                        break;
                }
            }
            if (i >= 0) {
                if (comma) {
                    var l = str.length;
                    for (; i >= 0; i--) {
                        retstr = str.substr(i, 1) + retstr;
                        if (i > 0 && ((l - i) % 3) == 0)
                            retstr = ',' + retstr;
                    }
                } else
                    retstr = str.substr(0, i + 1) + retstr;
            }
    
            retstr = retstr + '.';
            // 处理小数部分
            str = strarr.length > 1 ? strarr[1] : '';
            fmt = fmtarr.length > 1 ? fmtarr[1] : '';
            i = 0;
            for (var f = 0; f < fmt.length; f++) {
                switch (fmt.substr(f, 1)) {
                    case '' :
                        if (i < str.length)
                            retstr += str.substr(i++, 1);
                        break;
                    case '0' :
                        if (i < str.length)
                            retstr += str.substr(i++, 1);
                        else
                            retstr += '0';
                        break;
                }
            }
            return retstr.replace(/^,+/, '').replace(/.$/, '');
        };
    
    
    
    

      

  • 相关阅读:
    福大软工1816 · 第二次作业
    团队第一次作业
    软工实践 第三次作业 结对作业一
    软件工程-个人项目
    白茫茫一片真干净·福大软工1816 · 第一次作业
    Alpha 冲刺 (3/10)
    Alpha冲刺 (2/10)
    Alpha 冲刺(1)
    福大软工 · 第七次作业——需求分析报告
    福大软工 · 第八次作业(课堂实战)- 项目UML设计(团队)
  • 原文地址:https://www.cnblogs.com/lhp2012/p/4809330.html
Copyright © 2020-2023  润新知