使用jquery返回日期

时间:2011-02-23 08:57:22

标签: jquery

我正在对Web方法进行JQuery调用并返回JSON,但是当我尝试返回日期时遇到问题,它们以格式/日期(1298073600000)/返回。有人可以帮忙吗?

$(document).ready(function() {

    $.ajax(
    {
        type: "POST",
        url: "/CDServices.asmx/GetWeekEndingDates",
        data: "{}",
        dataType: "json",
        contentType: "application/json; charset=utf-8",

        success: function(msg) {

            alert(msg.d.LastWeekEndingDate);

        }
    });
});

3 个答案:

答案 0 :(得分:2)

如果msg.d.LastWeekEndingDate包含/Date(1298073600000)/,您应该应用一点正则表达式去除时间戳:

var mydate = new Date(+msg.d.LastWeekEndingDate.match(/\/Date\((\w+)\)\//)[1]);

正则表达式返回一个字符串文字,需要转换为数字。我使用表达式前面的+来做到这一点。结果是:

console.log(mydate);   // === Sat Feb 19 2011 01:00:00 GMT+0100 {}

<强>更新

Date object向您公开了几种方法。例如:

console.log([mydate.getDate(), mydate.getMonth()+1, mydate.getFullYear()].join('/'));

会返回19/2/2011

请参阅https://developer.mozilla.org/en/JavaScript/Reference/global_objects/date

答案 1 :(得分:0)

$(document).ready(function() {
    $.ajax(
    {
        type: "POST",
        url: "/CDServices.asmx/GetWeekEndingDates",
        data: "{}",
        dataType: "json",
        contentType: "application/json; charset=utf-8",

        success: function(msg) {
            var aDate = new Date(msg.d.LastWeekEndingDate);
            var month = aDate.getMonth() + 1;
            var day = aDate.getDate();
            var year = aDate.getFullYear();
            var usethis = day + "/" + month + "/" + year;
        }
    });
});

答案 2 :(得分:0)

var dtE = /^/Date((-?[0-9]+))/$/.exec(msg.d.LastWeekEndingDate); if(dtE){    var dt = new Date(parseInt(dtE [1],10));    警报(DT); }

参考SO question,这需要根据您的要求进行修改。