js时间和日期格式化包功能
虽然js提供了各种获取时间Date对象不同属性的方法,比如:getDate方法| getDay方法| getFullYear方法| getHours方法等。它没有像java那样提供一个方法让用户根据自己提供的模式格式化指定的时间对象,所以封装了一个小方法让大家调侃-。-,有很好的建议。
使用的知识点:
参数:这个对象代表正在执行的函数和调用它的函数的参数。它不能显式创建。虽然它有一个长度属性,可以像数组一样采用“[]”的语法,但它不是数组。Typeof对象:返回表示表达式数据类型的字符串的运算符。有六种可能:“数字”、“字符串”、“布尔”、“对象”、“函数”和“未定义”。Object.constructor:表示创建对象的函数。对象必须是对象或函数的名称。基础数据没有此属性。执行方法:在正则表达式模式下运行字符串搜索,并返回包含搜索结果的数组。如果没有找到匹配项,它将返回null。数组中相同类型的匹配元素将不会重复。Str.split(Rex|str):用一个常规对象或子字符串将一个字符串分成子字符串,然后以字符串数组的形式返回结果。抛出错误(“消息”):抛出带有消息信息的错误。Throw后面可以跟任何表达式。有一些是给.在用法上,三项式运算符substr,这将不讨论,但相对简单。
代码片段:
复制代码如下:/* * * * * js时间和日期格式*** br* p*模板字符串格式严格,如果超过标准就会抛出异常,每种格式只能出现一次。例如:yyyy-mm-yyyy的格式抛出异常* /p* y-年长度: 2/4位br* q-季度长度: 1位br* M-月长度3360 1 ~ 2位br* d-日长度3360 1 ~ 2位br* H-小时长度: 1~2位24小时制,H: 12小时制br* m-分钟长度: 1~2位br* s=2) //参数号验证的ThrowerError(参数长度非法);if(!日期||(日期类型!='object') || (d.constructor!=Date)) //参数有效性检查抛出错误(参数[0]“:类型不是Date类型”);If (/h/)。测试(fmt)/h/。test (fmt))抛出错误(‘小时格式错误,同一类型只能连续出现一次!’);/*模板参数验证,常规验证方法*/var verify=function(rex){ var arr=new regexp(rex)。exec(fmt);//获取匹配的结果数组if(!Arr) //匹配失败,返回返回“”;如果。length 2) //ThrowError在同一类型区间内出现多次(' FMT格式错误:同一类型在一行内只能出现一次!');返回arr[0];};/* * *提供月、日、时、分、秒通用匹配替换* @param {object o属性键} r * @param {r对应常规对象} rex * */var common=function (r,rex) {if (len!=1个镜头!=2)thrower error(' :m的月格式错误只能出现一两次');len==2?fmt=fmt.replace(rex,o[r]。长度==1?0 ' o[r]: o[r]): fmt=fmt . replace(rex,o[r]);} var o={//数据存储对象' y ': date.getFullYear()' ',//year ' q ' : math . floor((date . getmonth())/3),//quarty ' M ' : date . getmonth()1 ' ',//month' d ': date.getDate()' ',//day' H ': date.getHours()' ',//24: 00' h ': date.getHours()' ',//12:12get毫秒()//ms} for(var r in o) {var rex,len,temprex=new RegExp(r);temp=verify(rex);//匹配结果字符串len=temp.length//长度if(!len || len==0)继续;if(r=='y ') { if(len!=2个镜头!=4) ThrowerError ('Year格式错误:y只能出现2/4次');len==2?fmt=fmt.replace(rex,o[r]。substr(2,3)) : fmt=fmt.replace(rex,o[r]);} else if(r=='q ') { if(len!=1)抛出错误(“季度格式错误:q只能出现一次”);fmt=fmt.replace(rex,o[r]);} else if(r=='h ') { if(len!=1个镜头!=2) ThrowerError('小时格式错误:h只能出现一次');var h=(o[r] 12?第12号命令第:条规则。len==2?fmt=fmt.replace(rex,h.length==1?0 ' h :h): fmt=fmt . replace(rex,h);} else if(r=='S ') { if(len!=1)抛出错误('毫秒格式错误:S只能出现一次');fmt=fmt.replace(rex,o[r]);} else {///(r==' M ' | | r==' d ' | | r==' H ' | | r==' M ' | | r==' s ')common(r,rex)} } return fmt;}
最后几个演示效果供大家参考:
复制代码如下: console . log(date format(new date(),' yyyy年q季度m月dd日HH小时m分s秒s毫秒');
复制代码如下: console . log(date format(new date(),' yyyy年,yy季度,m月,dd日,HH小时,m分钟,s秒,s毫秒');
复制代码如下: console . log(date format(new date(),' yyyy年q季度m月dd日Hh小时m分s秒s毫秒');
复制代码如下:console.log(DateFormat('我不是时间对象',' yyyy,q,m,月,dd,Hh,m,分,秒,毫秒');
复制代码如下: console . log(date format(new date(),' yyyy,q,MMM,month,dd,HH,m,s,s,ms ');
其他效果就不一一列举了。如果你感兴趣,可以复制代码,直接测试。请纠正任何错误或需要优化的地方。
这就是这个非常易用的封装功能的介绍。很实用吗?我的朋友可以在自己的项目中直接使用它。
版权声明:js时间和日期格式化包功能是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。