在.net 中,调用 post 或者 get和后台通信时,如果有时间返回信息,后台返回的时间信息一般是这样格式:Thu Jul 9 23:14:53 UTC+0800 2015,那么要在前台显示就会有点点小困难。最近使用到,小小研究了下,参照网络中的写法,解决方法如下:
1.先将C#的格式转换成js 的datetime形式。
/*
*将C#返回的日期格式进行转换 将 类似 Thu Jul 9 23:14:53 UTC+0800 2015 转换成 2015-05-06
*Parameters:
*orgData - {string} C# 日期 格式 //Thu Jul 9 23:14:53 UTC+0800 2015
*targetFormate - {string} 目标日期格式 yyyy/MM/dd之类的
*Returns:{string} 格式化后的日期 类似2015-2-3
*/
MyDemo.Util.CSharpDataConvert = function (orgData, formate) {
orgData = orgData + "";
var date = "";
var month = new Array();
month["Jan"] = 1; month["Feb"] = 2; month["Mar"] = 3; month["Apr"] = 4; month["May"] = 5; month["Jan"] = 6;
month["Jul"] = 7; month["Aug"] = 8; month["Sep"] = 9; month["Oct"] = 10; month["Nov"] = 11; month["Dec"] = 12;
var week = new Array();
week["Mon"] = "一"; week["Tue"] = "二"; week["Wed"] = "三"; week["Thu"] = "四"; week["Fri"] = "五"; week["Sat"] = "六"; week["Sun"] = "日";
str = orgData.split(" ");
date = str[5] + "/";
date = date + month[str[1]] + "/" + str[2];
var tempData = new Date(date);
if (!formate) { formate = 'yyyy-MM-dd'; }
return tempData.format(formate);
};
2.拓展js Date方法。得到格式化的日期形式 。
/*
*拓展Date方法。得到格式化的日期形式 基本是什么格式都支持
*date.format('yyyy-MM-dd'),date.format('yyyy/MM/dd'),date.format('yyyy.MM.dd')
*date.format('dd.MM.yy'), date.format('yyyy.dd.MM'), date.format('yyyy-MM-dd HH:mm') 等等都可以
*使用方法 如下:
* var date = new Date();
* var todayFormat = date.format('yyyy-MM-dd'); //结果为2015-2-3
*Parameters:
*format - {string} 目标格式 类似('yyyy-MM-dd')
*Returns - {string} 格式化后的日期 2015-2-3
*
*/
Date.prototype.format = function (format) {
var o = {
"M+": this.getMonth() + 1, //month
"d+": this.getDate(), //day
"h+": this.getHours(), //hour
"m+": this.getMinutes(), //minute
"s+": this.getSeconds(), //second
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
"S": this.getMilliseconds() //millisecond
}
if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
(this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o) if (new RegExp("(" + k + ")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length == 1 ? o[k] :
("00" + o[k]).substr(("" + o[k]).length));
return format;
}