深入理解MVC中的时间js格式化
记录下我遇到的一个,MVC中post请求返回一个JSON字符串,其中包含数据库中的时间格式(如:/Date(10000000000)/),不知道怎么处理。
百度的方法都不适用,经自己研究,做成了一个Jquery插件,希望对大家有所帮助。
插件源代码:
(function($){ /格式化JSON返回的日期类型为自己定义的格式:如:yyyy-MM-ddhh:mm:ss dtstr:JSON返回的日期"/Date(10000000000)/" *fmt:自定义的格式,如:yyyy-MM-ddhh:mm:ss / $.Format=function(dtstr,fmt){ vardate=$.ToDateTime(dtstr); varo={ "M+":date.getMonth()+1,//月份 "d+":date.getDate(),//日 "h+":date.getHours(),//小时 "H+":date.getHours(),//小时 "m+":date.getMinutes(),//分 "s+":date.getSeconds(),//秒 "q+":Math.floor((date.getMonth()+3)/3),//季度 "S":date.getMilliseconds()//毫秒 }; if(/(y+)/.test(fmt))fmt=fmt.replace(RegExp.$1,(date.getFullYear()+"").substr(4-RegExp.$1.length)); for(varkino) if(newRegExp("("+k+")").test(fmt))fmt=fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):(("00"+o[k]).substr((""+o[k]).length))); returnfmt; } / 格式化JSON返回日期类型LONG转日期 dtstr:JSON返回日期“/Date(10000000000)/” / $.ToDateTime=function(dtstr){ //1900-01-01T00:00:00 if((dtstr+'').indexOf('Date(')>=0){ varldate=+(dtstr+'').replace('/Date(','').replace(')/',''); if(ldate>0){returnnewDate(ldate);} } else{ varstr=(dtstr+'').replace(/-/g,"/").replace(/T/g,""); if(str.split('.')[0]=='1900/01/0100:00:00'){ returnnull; } elseif((dtstr+'').length>0){ returnnewDate(str.split('.')[0]); } } returnnull; } / 格式化JSON返回日期类型LONG转指定格式字符串:2015-01-0112:59:59 title:日期类型名称“发布时间” dtstr:JSON返回日期“/Date(10000000000)/” substrstart:字符串开始截断位置“5” / $.ToDateTimeString=function(title,dtstr,substrstart){ vardt=toDateTime(dtstr); if(dt){ vary=dt.getFullYear(); varm=dt.getMonth()+1; vard=dt.getDate(); varh=dt.getHours(); vari=dt.getHours(); vars=dt.getHours(); vardatestr=y+"-"+(m<10?"0":"")+m+"-"+(dt.getDate()<10?"0":"")+dt.getDate()+""+(dt.getHours()<10?"0":"")+dt.getHours()+":"+(dt.getMinutes()<10?"0":"")+dt.getMinutes()+":"+(dt.getSeconds()<10?"0":"")+dt.getSeconds(); returntitle+datestr.substr(substrstart); } return""; } / 格式化JSON返回日期类型 说明:LONG类型日期转指定格式字符串,求日期时间差,并追加至指定集合:2015-01-0112:59:59 htmls:目标集合 title:日期类型名称“发布时间” dtstr:JSON返回日期“/Date(10000000000)/” dtstr01:JSON返回日期“/Date(10000000000)/”时间差结束日期1 dtstr02:JSON返回日期“/Date(10000000000)/”时间差结束日期2如果为空取1 substrstart:字符串开始截断位置“5” */ $.ToDateTimeDiffString=function(htmls,title,dtstr,dtstr01,dtstr02,substrstart){ vardtstrs=toDateTimeString("",dtstr,substrstart); if(dtstrs){ vardt1=toDateTime(dtstr); vardt2=toDateTime(dtstr01); vardt3=toDateTime(dtstr02); if(dt3){dt2=dt3;} vartstime=dt1-dt2; varm=Math.floor(tstime/1000/60,0); vars=Math.ceil(tstime/1000%60); htmls.push(''+title+(m>0?m+"分":"")+(s>0?s+"秒":"")+""+dtstrs+''); } } })(jQuery); 时间格式化jquery插件
使用方法
1.引用上面的jquery插件
2.格式化时间:
$.post("/tigger/GetUserPrizeLog?t="+Math.random(),{activityCode:1138,myOpenId:"@WorkContext.WxUserInfo.OpenId"},function(json){ varstr=""; $.each(json.Body,function(i,model){ str+="<li>"; str+="<pclass=\"title\">"+model.ActivityPrizeName+"</p>"; str+="<pclass=\"time\">"+$.Format(model.CreateTime,"yyyy-MM-ddhh:mm")+"</p>"; str+="<spanclass=\"get\"onclick=\"javascript:ShowPrize('"+model.ActivityPrizeName+"')\"></span>"; str+="</li>"; }); $("#recordul").html(str); });
model.CreateTime 是从服务器获取的时间
使用方法:
$.Format(model.CreateTime,"yyyy-MM-ddhh:mm")
以上这篇深入理解MVC中的时间js格式化就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。