首页 > 解决方案 > javascript .substr 中断警报方法

问题描述

我正在尝试从 Microsoft JSON 字符串中提取小时和分钟。我浏览了几篇文章,最近的一篇是:如何格式化 Microsoft JSON 日期?无济于事。当我尝试按照提供的示例代码进行操作时。

警报不会触发。不知道我做错了什么或错过了什么。相关代码在这里:

$.ajax({
  type: "GET",
  url: "/TrainActivity/GetDelayDataForEditing/" + "?delayId=" + delId,
  dataType: 'json',
  //data: delId,
  success: function(data) {
    //data = JSON.stringify(data);
    //$("#myDivID").text(JSON.stringify(data));
    //var delayId = delId;

    modal.find('');
    //This is my code based off stack overflow article, and it breaks the alert
    var date = new Date(parseInt(data.beginDelayDateTime.substr(6)));

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

    //this date is okay
    //var date = new Date();
    var unparsedDate = moment(data.beginDelayDateTime);
    var parsedDate = new Date(unparsedDate);
    var hours = parsedDate.getHours;
    var minutes = parsedDate.getMinutes;
    var timeToDisplay = hours + ":" + minutes;
    //var timeToDisplay = JSON.stringify(hours) + ":" + JSON.stringify(minutes);

    alert("Success " +
      //"\ntest date: " + date +
      "\nunparsed date: " + unparsedDate +
      "\nParsed date: " + parsedDate +
      "\nDisplay time: " + timeToDisplay +
      "\nbegin Delay time: " + data.BeginDelayDateTime
    );

    //$('#delays-grid').data('kendoGrid').dataSource.read();
    //$("#delayAddModal").modal("hide");

  },
  error: function() {
    alert("error in Delay Edit");
  }
});

//modal.find(".modal-body").text("Edit the Delay at " + name + " with id " + delId);
modal.find(".modal-footer #delayEditButton").data("guid", delId);
});

data.beginDelayDateTime 包含 /Date(1531958520000)/ 并且该值 ("/Date(1531958520000)/") 显示在警报中没有问题。

标签: javascriptjson

解决方案


该问题已通过更正印刷错误得到解决。正如 epascarello 指出的 BeginDelayDateTime != beginDelayDateTime。通过更正拼写错误,问题得到解决,Microsoft JSON 日期字符串被正确解析。非常感谢所有提供帮助的人。


推荐阅读