深入理解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格式化就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。