一晃2017年已经过去了,2018年已经悄然而至。回首过去的2017年,工作还是一如既往,但生活却有了翻天覆地的变化。尚还觉得自己还小的自己,在过去的一年中却完成了两件人生大事,回想起来还是一脸懵逼,好似经历了很多,但有不知道从何说起的感觉。至于工作和学习,这一年确实关注的比较少,每天都是正常的上班下班,偶尔也加加班,拿着一成不变的工资,恍恍惚惚的把2017年的工作干完了。而技术层面的提升,自觉为零,顾接下来的2018年该为自己的技术做做提升了。
简单的总结下逝去的一年,提起精神,做好计划,充满活力的迎接全新的2018。
作为金融行业的程序开发,对于金额和时间的处理会比较多,所以今天就来简单的总结下js中对于该两种数据的格式化。
一、金额格式化
1、字符串转换成数字
js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。仅仅有对String类型调用这些方法,这两个函数才能正确执行;对其它类型返回的都是NaN(Not a Number)。
parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN
parseInt()方法还有基模式,能够把二进制、八进制、十六进制或其它不论什么进制的字符串转换成整数。基是由parseInt()方法的第二个參数指定的,示比例如以下:
2、数字转为千分符
function rendererZhMoney(v) { if(isNaN(v)){ return v; } v = (Math.round((v - 0) * 100)) / 100; v = (v == Math.floor(v)) ? v + ".00" : ((v * 10 == Math.floor(v * 10)) ? v + "0" : v); v = String(v); var ps = v.split('.'); var whole = ps[0]; var sub = ps[1] ? '.' + ps[1] : '.00'; var r = /(d+)(d{3})/; while (r.test(whole)) { whole = whole.replace(r, '$1' + ',' + '$2'); } v = whole + sub; return v; }
3、数字转为以万为单位
function rendererZhMoneyWan(v) { if(isNaN(v)){ return v; } v = v*0.0001;//10000; v = formatFloat(v,0);//parseInt(v); rendererZhMoney(v); return v; }
4、转换为中文大写金额
function toBigMoney(value) { var intFen,i; var strArr,strCheck,strFen,strDW,strNum,strBig,strNow; var isFu = false; //是否为负数 if(value.trim==""){ return "零"; } strCheck = value+"."; strArr = strCheck.split("."); strCheck = strArr[0]; var len = strCheck.length ; var valueFunc = value+""; // if(len > 12){ Ext.MessageBox.alert("提示","数据"+value+"过大,无法处理!"); return ""; } try{ i = 0; strBig = ""; if(valueFunc.indexOf("-") != -1){ //如果为负数 isFu = true; valueFunc = valueFunc.substring(1,valueFunc.length); value = valueFunc; } var s00="00"; var svalue = value+""; var ipos = svalue.indexOf(".") ; var iiLen = svalue.length; if(ipos<0){ strFen = svalue+"00"; }else if(ipos==iiLen-2){ strFen = svalue.substring(0,iiLen-2)+svalue.substring(iiLen-1,iiLen)+"0"; }else if(ipos==iiLen-3){ strFen = svalue.substring(0,iiLen-3)+svalue.substring(iiLen-2,iiLen); }else{ strFen = svalue.substring(0,ipos)+svalue.substring(ipos+1,ipos+3); } intFen = strFen.length; strArr = strFen.split(""); while(intFen!=0){ i = i+1; switch(i){ case 1:strDW = "分";break; case 2:strDW = "角";break; case 3:strDW = "元";break; case 4:strDW = "拾";break; case 5:strDW = "佰";break; case 6:strDW = "仟";break; case 7:strDW = "万";break; case 8:strDW = "拾";break; case 9:strDW = "佰";break; case 10:strDW = "仟";break; case 11:strDW = "亿";break; case 12:strDW = "拾";break; case 13:strDW = "佰";break; case 14:strDW = "仟";break; } switch (strArr[intFen-1]){ case "1":strNum = "壹";break; case "2":strNum = "贰";break; case "3":strNum = "叁";break; case "4":strNum = "肆";break; case "5":strNum = "伍";break; case "6":strNum = "陆";break; case "7":strNum = "柒";break; case "8":strNum = "捌";break; case "9":strNum = "玖";break; case "0":strNum = "零";break; } strNow = strBig.split(""); if((i==1)&&(strArr[intFen-1]=="0")){ strBig = strBig+"整" ; } else if((i==2)&&(strArr[intFen-1]=="0")){ if(strBig!="整") strBig = "零"+strBig; }else if((i==3)&&(strArr[intFen-1]=="0")){ strBig = "元"+strBig; }else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="元")){ strBig = "零"+strBig; }else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零")){} else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="元")){} else if((i==7)&&(strArr[intFen-1]=="0")){ strBig ="万"+strBig; }else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="万")){ strBig = "零"+strBig; }else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="万")){} else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零")){} else if((i<11)&&(i>8)&&(strArr[intFen-1]!="0")&&(strNow[0]=="万")&&(strNow[2]=="仟")){ strBig = strNum+strDW+"万零"+strBig.substring(1,strBig.length); }else if(i==11){ if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]=="仟")){ strBig ="亿"+"零"+strBig.substring(1,strBig.length); }else if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]!="仟")){ strBig ="亿"+strBig.substring(1,strBig.length); }else if((strNow[0]=="万")&&(strNow[2]=="仟")){ strBig = strNum+strDW+"零"+strBig.substring(1,strBig.length); }else if((strNow[0]=="万")&&(strNow[2]!="仟")){ strBig = strNum+strDW+strBig.substring(1,strBig.length); }else { strBig = strNum+strDW+strBig; } }else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="亿")){ strBig = "零"+strBig; }else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="亿")){ }else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零")){ }else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]!="仟")){ strBig = strNum+strDW+strBig.substring(1,strBig.length); }else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]=="仟")){ strBig = strNum+strDW+"亿零"+strBig.substring(2,strBig.length); }else{ strBig = strNum+strDW+strBig; } strFen = strFen.substring(0,intFen-1); intFen = strFen.length; strArr = strFen.split(""); } if(strBig.substring(0,1)=="元")strBig=strBig.substring(1) if(strBig.substring(0,1)=="零")strBig=strBig.substring(1) if(strBig=="整") {strBig="零元整";} if(true == isFu){ //如果为负数 strBig = "负"+strBig; } return strBig; }catch(err){ alert(err); return ""; } }
二、时间格式化
1、js获取当前时间
//获取系统当前时间 var myDate = new Date();
2、转为yyyy-MM-dd hh:mm:ss
Date.prototype.pattern = function (fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时 "H+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; var week = { "0": "/u65e5", "1": "/u4e00", "2": "/u4e8c", "3": "/u4e09", "4": "/u56db", "5": "/u4e94", "6": "/u516d" }; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } if (/(E+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[this.getDay() + ""]); } for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); } } return fmt; }
调用方式:**.pattern("yyyy-MM-dd hh:mm:ss")
3、/Date(1234656000000)/(微软json序列化是默认的时间格式)转为正常格式
var datetimetostring = function (value) { var d = eval('new ' + (value.replace(///g, ''))); return d; }
友情链接: http://www.cnblogs.com/milo-xie/archive/2012/04/24/2468660.html