如何将JSON格式的日期字符串解析成日期格式

新手上路,请多包涵

我正在做的是,使用 ajax 从数据库中获取数据并将其显示在 html 文本框中以进行更新。下面是我成功获取数据的 Web 方法代码。

 [WebMethod]
public static List<Employee> getEmployee()
{
     var slist = new List<Employee>();
     var db = new BLUEPUMPKINEntities();
     slist = db.Employees.ToList();
     return slist;
}

现在,当我从数据库中获取数据时,我得到了这种格式的日期 /Date(725828400000)/ 。我在谷歌上搜索有关解析和转换 json 日期字符串格式为 html/javascript 日期的信息,也使用 3rd 方插件,如 moment.js 和 jquery.ui,但没有解决我的问题。同样在这里,我分享了我的代码,我从中以 json 格式从 ajax 获取数据并将其显示在 jquery 数据表上。

 $.ajax({
    url: "Employees.aspx/getEmployee",
    data: null,
    contentType: "Application/json; charset=utf-8",
    responseType: "json",
    method: "POST",
    success: function (response) {
        //alert(response.d);

        var jsonObject = response.d;
        var result = jsonObject.map(function (item) {
            //var date = new Date(item.EMP_DOB);
            //var obj = Date.parse(date);
            var result = [];
            result.push('');
            result.push(item.EMP_FNAME);
            result.push(item.EMP_MNAME);
            result.push(item.EMP_LNAME);
            result.push(item.EMP_EMAIL);
            result.push(item.EMP_DOB); //this is my date column in my database from where date is in yyyy/mm/dd format
            result.push(item.EMP_USERNAME);
            result.push(item.EMP_PASSWORD);
            result.push(item.ID);
            return result;
        });
        myTable.rows.add(result); // add to DataTable instance
        myTable.draw();
    },
    error: function (xhr) {
        alert(xhr.status);
    },
    Failure: function (response) {
        alert(response);
    }
});

我想要 mm/dd/yyyy 格式的日期。请帮我解决我的问题。

原文由 Ahmer Ali Ahsan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 635
2 个回答

如果添加依赖项没有问题,那么您可以添加 moment.js,它将帮助您以任何格式格式化数据我假设来自服务器的日期是这种格式 '/Date(725828400000)/'

 var d = item.EMP_DOB;
result.push(moment(Number(d.match(/\d+/)[0])).format('MM/DD/YYYY'));

如果你无法添加 moment js 那么你可以做类似的事情

var date = new Date(Number(d.match(/\d+/)[0]));
var day = date.getDate();
day = day = (day < 10) ? ("0" + day) : day;
var month = date.getMonth() + 1);
month = (month < 10) ? ("0" + month) : month;
var dateStr = day + "-" + month + "-" + date.getFullYear();
result.push(dateStr);

原文由 Zohaib Ijaz 发布,翻译遵循 CC BY-SA 3.0 许可协议

此方法会将您所有的 WCF 类型日期转换为 javascript 日期对象:

 var dateRegex = /^\/Date\((d|-|.*)\)[\/|\\]$/;

function convertWCFStringDate(strDate) {
    var matched = dateRegex.exec(strDate);
    if (matched) {
        var parts = matched[1].split(/[-+,.]/);
        return new Date(parts[0] ? +parts[0] : 0 - +parts[1]);
    }
}

原文由 Morteza Tourani 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题