宝哥软件园

详细解释JavaScript时间格式

编辑:宝哥软件园 来源:互联网 时间:2021-09-20

感谢一些前辈写的JS格式日期时间JS代码,非常好,功能强大!

前言:

虽然js提供了各种获取时间Date对象不同属性的方法,比如:getDate方法| getDay方法| getFullYear方法| getHours方法等。它没有像java那样提供一个方法让用户根据自己提供的模式格式化指定的时间对象,所以封装了一个小方法让大家调侃-。-,有很好的建议。

使用的知识点:

参数:这个对象代表正在执行的函数和调用它的函数的参数。它不能显式创建。虽然它有一个长度属性,可以像数组一样采用“[]”的语法,但它不是数组。

对象类型:返回表示表达式数据类型的字符串的运算符。有六种可能:“数字”、“字符串”、“布尔”、“对象”、“函数”和“未定义”。

对象。构造函数:表示创建对象的函数。对象必须是对象或函数的名称。基础数据没有此属性。

执行方法:在正则表达式模式下运行字符串搜索,并返回包含搜索结果的数组。如果没有找到匹配项,它将返回null。数组中相同类型的匹配元素将不会重复。

Str。split (rex | str):用一个常规对象或子字符串将一个字符串分成子字符串,然后以字符串数组的形式返回结果。

抛出错误(“消息”):抛出带有消息信息的错误。Throw后面可以跟任何表达式。

有一些是给.在用法上,三项式运算符substr,这将不讨论,但相对简单。

代码片段:

* * * * * js时间日期格式化*** br * p *模版字符串采用严谨格式,超出则会抛出异常,且每类格式只可出现一次,如:yyyy-mm-yyyy格式会抛异常* /p * y-年长度: 2/4位br * q-季度长度: 1位br * M-月长度: 1~2位br * d-日长度: 1~2位br * H-时长度: 1~2位24小时制,h:12小时制br * m-分长度: 1~2位br * s-秒长度: 1~2位br * S-毫秒长度:固定一位* @param {Date类型对象}日期* @param {String类型模板字符串} fmt * @返回格式化后时间日期字符串* @作者lyt * blongs : http://www.cnblogs.com/liuyitian/*/函数DateFormat(date,fmt){ if (arguments.length!=2) //参数个数校验引发错误('参数长度不合法');if(!日期||(日期类型!='object') || (d.constructor!=日期))//参数合法性校验引发错误(参数[0] ':类型不为日期类型');if (/H /).测试(fmt) /h /.测试(fmt))抛出错误('小时格式错误,同类型只能连续出现一次!');/* 模板参数校验,正则验证方法*/var verify=function(Rex){ var arr=new RegExp(Rex).exec(fmt);//获得匹配结果数组if(!arr) //匹配失败返回返回"";如果。长度2) //同一类型间隔出现多次抛出错误(' fmt格式错误:同类型只能连续出现一次!');返回arr[0];};/** * 提供月、天、时、分、秒通用匹配替换* @param {对象o属性key} r * @param {r对应正则对象} rex **/var common=function(r,rex) { if(len!=1个镜头!=2)投掷错误('月份格式错误:米只能出现1/2次');len==2?fmt=fmt.replace(rex,o[r]).长度==1?0 ' o[r]: o[r]): fmt=fmt。替换(rex,o[r]);} var o={ //数据存储对象y ': date.getFullYear()' ',//年q ' :数学。楼层((日期。GetMountry)(3)/3)、//季度M ': date.getMonth() 1 ' ',//月d ': date.getDate()' ',//日H ': date.getHours()' ',//24时h ': date.getHours()' ',//12时m ': date.getMinutes()' ',//分s ': date.getSeconds()' ',//秒S ' :毫秒()//毫秒} for(var r in o) { var rex,len,temprex=new RegExp(r);temp=verify(rex);//匹配所得字符串len=温度长度;//长度if(!len || len==0)继续;if(r=='y ') { if(len!=2个镜头!=4)投掷错误('年份格式错误: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)投掷错误('小时格式错误:h只能出现1/2次');var h=(o[r] 12?第12号命令第:条规则len==2?fmt=fmt.replace(rex,h.length==1?0 ' h :h): fmt=fmt。替换(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;}上几个演示效果,供大家参考:

控制台日志(日期格式(新日期(),' yyyy年第q季度M月截止日期(截止日期的缩写)日殿下时m分s秒S毫秒'));

控制台日志(日期格式(新日期(),' yyyy年yy第q季度M月截止日期(截止日期的缩写)日殿下时m分s秒S毫秒'));

控制台日志(日期格式(新日期(),' yyyy年第q季度M月截止日期(截止日期的缩写)日倍硬时m分s秒S毫秒'));

console.log(DateFormat('我不是时间对象,' yyyy年第q季度M月截止日期(截止日期的缩写)日倍硬时m分s秒S毫秒'));

控制台日志(日期格式(新日期(),' yyyy年第q季度嗯月截止日期(截止日期的缩写)日殿下时m分s秒S毫秒'));

其他效果就不一一列举了。如果你感兴趣,可以复制代码,直接测试。请纠正任何错误或需要优化的地方。

通过以上内容,我已经给大家详细了解了JavaScript时间格式化的相关知识,希望大家喜欢。

更多资讯
游戏推荐
更多+