您的位置:首页 > Web前端 > JavaScript

用js解析经json序列化后的C#的DateTime类型数据

2016-08-18 13:14 896 查看

// val为经json直接序列化后的C#的DateTime类型的数据

function formatTime(val) {

    var re = /-?\d+/;

    var m = re.exec(val);

    var d = new Date(parseInt(m[0]));

// 按【2012-02-13 09:09:09】的格式返回日期

    return d.format("yyyy-MM-dd hh:mm:ss");

}

// 用于格式化日期显示

【感谢方渡远http://www.cnblogs.com/farawayboat/archive/2011/03/17/1987408.html

直接显示经json序列化后的C#的DateTime类型数据,可能类似:

\/Date(1245398693390)\/


而括号里的那一串数字是自1970年1月1日00:00:00到那个DateTime所表示时间所经过的毫秒数, 因此,

我们可以使用正则表达式把它提取出来,并以此构造出一个Javascript Date对象:

Date.prototype.format = function (format) //author: meizz

{

    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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: