如何格式化此JSON以发送和接收

时间:2013-12-27 12:46:09

标签: javascript json html5

我有一个WCF休息服务,它返回一些JSON数据并接受一些DateTime类型的POST参数对象。

当我收到包含日期时间字段的数据时,日期时间值如下:

  1. 如何格式化以获取实际日期(如2013年12月30日)
  2. 当我为POST数据创建数据时,如下所示

    var dataPost = { ID:“121”, 名称:“测试”, 发表日期:“12/30/2013” }

  3. 此操作失败(错误请求)。但如果我通过:

    var dataPost = {
    ID: "121",
    Name: "Test",
    DateAdmitted: "/Date(1388341800000+0530)/"
    }
    

    我希望能够传递“12/30/2013”​​,但这些是我在HTML中处理的值。

    基本上我想:

    1. 以某种方式将收到的DateTime格式化为可读日期时间。 (“/日期(1388341800000 + 0530)/” - >“12/30/2013”​​)

    2. 发送将可读日期时间转换为此格式时:
      (“12/30/2013”​​ - >“/日期(1388341800000 + 0530)/”)

    3. 请有人帮助我。

      • 吉里贾

2 个答案:

答案 0 :(得分:1)

Step 1: Parse /Date(1388341800000+0530)/ extract 1388341800000 and 0530(offset)

Step 2 : create date object var d = new Date(1388341800000);


var d = new Date(1388341800000); // time
var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
var nd = new Date(utc + (3600000*offset)); // offset means 0530
nd.toString('yyyy-MM-dd'); // this is your date

虽然我没有运行此代码但是这样的代码应该适合你。

如果我没有错,你在另一个帖子中为java提出了同样的问题。现在,如果你可以从js正确传递,那么你需要java答案。

答案 1 :(得分:0)

解析wcf服务响应并获取日期使用 -

value = new Date(parseInt(value.replace("/Date(", "").replace(")/",""), 10));

发送wcf请求使用 -

var date = '\\\/Date(' + this.getTime() + ')\\\/';

供您参考,请查看这些stackoveflow question