如何正确格式化从webservice c#

时间:2016-07-07 09:46:20

标签: javascript c# web-services date-formatting

在我的.js文件中,我称之为c#webservice。

function getDetailsFromDb(id_mac, id_instance) {
$.ajax({
    type: "POST",
    url: "webMethods/GetData.asmx/getServicesById",
    dataType: "json",
    data: JSON.stringify({
        idMacchina: id_mac,
        idIstanza: id_instance
    }),
    contentType: "application/json; charset=utf-8",
    success: function (msg) {
        var itemsLoaded = msg.d;
    },
    error: function (err) {
        alert(err);
    }
});

此函数返回一组对象,我从数据库中获取这些对象。 其中一个theese字段,按以下格式返回日期:

/Date(1467878700750)/

现在,我需要从该字符串中获取日,月,年,小时,分钟,秒和毫秒。 我怎样才能获得这些信息?

提前致谢

2 个答案:

答案 0 :(得分:3)

自The Epoch(1970年1月1日格林威治标准时间午夜)起,这看起来像是毫秒。在JavaScript中,您可以通过以下方式为其创建Date实例:

  1. 从字符串中隔离数字
  2. 将其转换为数字
  3. 然后使用new Date,它接受​​毫秒以来的纪元:
  4. 如,

    
    
    var theString = "/Date(1467878700750)/";
    var theNumber = +theString.match(/\/Date\((\d+)\)\//)[1];
    console.log(theNumber);
    var dt = new Date(theNumber);
    console.log(dt.toString());
    
    
    

    如果您愿意,可以在转换JSON时使用 reviver 函数转换JSON中的所有

    
    
    var rexDateString = /^\/Date\((\d+)\)\/$/;
    function dateHandlingReviver(k, v) {
      var match;
      if (typeof v === "string") {
        match = v.match(rexDateString);
        if (match) {
          return new Date(+match[1]);
        }
      }
      return v;
    }
    
    var json = '{"date1":"/Date(1467878700750)/","obj":{"date2":"/Date(1467871700750)/"}}';
    
    var result = JSON.parse(json, dateHandlingReviver);
    console.log(result);
    
    
    

    (请注意,上面控制台中显示的那些日期的"2016-07-07T08:05:00.750Z"就是Stack Snippets控制台显示Date个对象的方式。)

    您通过设置dataType: "text"而不是dataType: "json"来更改查询以告诉jQuery 而不是为您解析它,然后使用{{}自己解析它1}}与那个复活者。

答案 1 :(得分:0)

https://jsfiddle.net/rhcwxLav/

var d = new Date();
d.setTime(1467878700750);
document.write(d);
}