【问题标题】:Javascript querying SharePoint Date Column returning '/Date(1494460800000)/'Javascript 查询 SharePoint 日期列返回 '/Date(1494460800000)/'
【发布时间】:2017-06-07 13:24:51
【问题描述】:

我有一些 JavaScript 正在查询 SharePoint 日期列。格式为:DD/MM/YYYY,结果返回正常,除了返回的日期,如设备详细信息下所示。

我正在尝试使用 Moment.js 库对其进行格式化,但我没有任何运气。 我认为要么是这一行:

var LifeCycleStart = item.DeviceAvailableFrom;

或者这一行我需要使用 Moment 格式:

$('#devicedetails').append($(txtTitle)); 

完整代码如下:

function getDeviceDetails() {
  var txtTitle = "";
  var txtOverview = "";
  var txtAccessories = "";
  var txtDevicetype = "";
  var txtTypicalDeviceUsage ="";
  var txtKnownSystemIssues ="";
  var txtLifeCycles = "";
  var tempLCS2 = "";

  var query = "http://collaboration-dev.xxx.com/sites/it/SystemInventory/_vti_bin/listdata.svc/Devices?$expand=LifeCycleStatus&$filter=Id eq " + window.DeviceId + "";
  var call = $.ajax({
    url: query,
    type: "GET",
    dataType: "json",
    headers: {
      Accept: "application/json;odata=verbose"
    }       
  });
  call.done(function (data,textStatus, jqXHR){
    $.each(data.d.results, function(index, item) {
      var tempID = item.Id;
      var tempTitle = item.Title;

      var LifeCycleStart = item.DeviceAvailableFrom;
      var LifeCycleStatus = item.LifeCycleStatusValue;
      var DeviceOverView = item.Description;
      var AccessDetails = item.Accessories;
      var DeviceKind = item.Devicetype;
      var Usage = item.TypicalUsage;
      //var KnownSystem = item.KnownSystemIssues

      txtTitle = "<p>" + LifeCycleStart + "</p>       <p>" + 
        LifeCycleStatus + "</p>";
        txtOverview = "<p>" + DeviceOverView + "</p>";
        txtAccessories = "<p>" + AccessDetails + "</p>";  
        txtDevicetype = "<p>" + DeviceKind  + "</p>";
        txtTypicalDeviceUsage = "<p>" + Usage + "</p>"; 
    });

    $('#devicedetails').append($(txtTitle));  
    $('#deviceoverview').append($(txtOverview));
    $('#devicekind').append(txtDevicetype);
    $('#deviceacc').append(txtAccessories);
    $('#deviceuse').append(txtTypicalDeviceUsage);

  });

  call.fail(function (jqXHR,textStatus,errorThrown){
    alert("Error retrieving data: " + jqXHR.responseText);
  });
}

【问题讨论】:

  • 服务器是否返回'/Date(1494460800000)/'?您需要将其格式化为DD/MM/YYYY 格式吗?到目前为止你尝试了什么?我认为moment(/Date(1494460800000)/).format('DD/MM/YYYY') 应该可以工作,请参阅moment parsing > ASP.NET JSON Date
  • 理想情况下是 DD/MM/YYYY。尝试了一些事情,包括: var LifeCycleStart = new Date(item.DeviceAvailableFrom); var wrapper = moment(wrapper).format("DD-MM-YY");我尝试的一切似乎都把剩下的结果都淘汰了

标签: javascript sharepoint-2010 momentjs


【解决方案1】:

Momentjs 可以解析像 '/Date(1494460800000)/' 这样的字符串,如解析文档的 ASP.NET JSON Date 部分所述。

在您的情况下,您可以执行以下操作:

var LifeCycleStart = moment(item.DeviceAvailableFrom).format('DD/MM/YYYY');

使用format 将矩对象转换为字符串。

【讨论】:

  • 确实有道理,当我使用该行时,它会淘汰其余的结果,因此设备详细信息和规格下的所有内容都会消失
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
  • 2016-10-28
  • 2018-06-19
  • 2012-02-08
  • 1970-01-01
相关资源
最近更新 更多