C#返回时间格式转换成 js 字符串

在.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;
}

  

posted @ 2015-07-12 10:23  拽不过现实  阅读(593)  评论(0编辑  收藏  举报