如何格式化 Microsoft JSON 日期?

2024-06-24

我正在第一次尝试Ajax http://en.wikipedia.org/wiki/Ajax_%28programming%29使用 jQuery。我正在将数据传输到页面上,但在处理为日期数据类型返回的 JSON 数据时遇到了一些问题。基本上,我得到一个看起来像这样的字符串:

/Date(1224043200000)/

来自对 JSON 完全陌生的人 - 如何将其格式化为短日期格式?这应该在 jQuery 代码中的某个地方处理吗?我已经尝试过jQuery.UI.datepicker插件使用$.datepicker.formatDate()没有任何成功。

仅供参考:这是我结合此处答案提出的解决方案:

function getMismatch(id) {
  $.getJSON("Main.aspx?Callback=GetMismatch",
    { MismatchId: id },

    function (result) {
      $("#AuthMerchId").text(result.AuthorizationMerchantId);
      $("#SttlMerchId").text(result.SettlementMerchantId);
      $("#CreateDate").text(formatJSONDate(Date(result.AppendDts)));
      $("#ExpireDate").text(formatJSONDate(Date(result.ExpiresDts)));
      $("#LastUpdate").text(formatJSONDate(Date(result.LastUpdateDts)));
      $("#LastUpdatedBy").text(result.LastUpdateNt);
      $("#ProcessIn").text(result.ProcessIn);
    }
  );

  return false;
}

function formatJSONDate(jsonDate) {
  var newDate = dateFormat(jsonDate, "mm/dd/yyyy");
  return newDate;
}

该解决方案从回调方法获取我的对象,并使用日期格式库在页面上正确显示日期。


eval()没有必要。这会工作得很好:

var date = new Date(parseInt(jsonDate.substr(6)));

The substr()函数取出/Date(部分,以及parseInt()函数获取整数并忽略)/在最后。结果数字被传递到Date构造函数。


我故意省略了基数(第二个参数parseInt); see 我的评论如下 https://stackoverflow.com/questions/206384/how-to-format-a-microsoft-json-date#comment19286516_2316066.

另外,我完全同意罗里的评论 https://stackoverflow.com/questions/206384/how-to-format-a-microsoft-json-date#comment20315450_2316066:ISO-8601 日期优于这种旧格式 - 因此这种格式通常不应该用于新开发。

对于 ISO-8601 格式的 JSON 日期,只需将字符串传递到Date构造函数:

var date = new Date(jsonDate); //no ugly parsing needed; full timezone support
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何格式化 Microsoft JSON 日期? 的相关文章

随机推荐