js格式化json传来的UTC格式的时间

来源:互联网 发布:www.taobao.com淘宝网 编辑:程序博客网 时间:2024/05/16 00:58

现在用json传输数据的情况越来越多,经常会在json中传时间,json传来的时间一般都是UTC格式,如:/Date(861811200000+0800)/,但是给用户看的时候,一般都是这种类型:yyyy-MM-dd,在以前做项目的时候,一般都是用sql的方式来取数据的,传输前都直接传处理好的时间字符串过来,但是现在经常用ORM的方式在开发,如果要传字符串,还得去多写Model,为了省事,查了一下资料,整理出以下方法:

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;}function utcToDate(utcCurrTime) {    utcCurrTime = utcCurrTime + "";    var date = "";    var month = new Array();    month["Jan"] = 1;    month["Feb"] = 2;    month["Mar"] = 3;    month["Apr"] = 4;    month["May"] = 5;    month["Jun"] = 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 = utcCurrTime.split(" ");    date = str[5] + "-";    date = date + month[str[1]] + "-" + str[2] + "-" + str[3];    return date;}function FormatDate(t) {       var n = t.toString();    var tt = eval(n.replace(/\/Date\((\d+)\+\d+\)\//gi, "new Date($1)"));    var d = new Date(tt);    var time = d.format("yyyy-MM-dd");    return time;}

用的时候,直接FormatDate(json传来的UTC时间即可);

如:FormatDate("/Date(861811200000+0800)/")

结果输出:1997-04-24

0 0