Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何将JSON日期转换为UTC格式_Jquery_Json_Angularjs_Twitter Bootstrap 3 - Fatal编程技术网

Jquery 如何将JSON日期转换为UTC格式

Jquery 如何将JSON日期转换为UTC格式,jquery,json,angularjs,twitter-bootstrap-3,Jquery,Json,Angularjs,Twitter Bootstrap 3,在回顾了这些评论之后,我决定澄清我的问题,以便更清楚地了解问题的具体内容以及我正在努力做什么 我正在尝试采用角度引导形式,该形式是绑定到作用域上Orders模型的数据,并希望将此对象转换为x-www-urlencoded格式,例如OrderRef=101121&OrderDate=2015-02-02T17:40:00.111Z&Address=140%20Acacacia%20Street,以便我可以向其传递$http.post。。方法 我在互联网上找到了一个例子,可以将我的订单对象转换成x-

在回顾了这些评论之后,我决定澄清我的问题,以便更清楚地了解问题的具体内容以及我正在努力做什么

我正在尝试采用角度引导形式,该形式是绑定到作用域上Orders模型的数据,并希望将此对象转换为x-www-urlencoded格式,例如OrderRef=101121&OrderDate=2015-02-02T17:40:00.111Z&Address=140%20Acacacia%20Street,以便我可以向其传递$http.post。。方法

我在互联网上找到了一个例子,可以将我的订单对象转换成x-www-urlencoded格式。这几乎可以工作,但对象中的日期属性没有格式化为UTC

我有一个RESTful API,它期望所有日期都作为UTC格式的日期传递,并且POST失败并出现错误

以以下代码为例转换对象时:

var order = {
    OrderRef: '101121',
    OrderDate: new Date('02/02/2015'),
    Address: '140 Acacia Street'
}

var data = jQuery.param(order);
我得到的OrderDate属性的Mon+Mar+02+2015+00%3A00%3A00+GMT%2B0000+GMT+标准+时间不是我想要的

如果我将这个转换后的对象发送到RESTful API,它会出错,因为它不理解特定的日期格式

是否有一个内置JavaScript函数可以正确地将具有日期属性的对象转换为UTC格式

这是我试图绑定到OrderDate属性的引导UI元素

仅当在属性上使用新日期“02/02/2015”时,它才能正确显示日期。如果我这样做了“OrderDate:'02/02/2015”,它将不起作用,因为输入元素根本不会显示日期

<div class="form-group">
    <label for="inputOrderRef3" class="col-sm-2 control-label">Order Ref</label>
    <div class="col-sm-10">
        <input type="text" class="form-control" id="inputOrderRef3" placeholder="Order Ref" ng-model="order.OrderRef" maxlength="6" required>
    </div>
</div>

我在AngularJS v1.3.9和jQuery 2.1.3中使用Twitter Bootstrap v3.3.2。

我在尝试momentjs时也遇到过同样的问题


试试这个

解决了我自己的问题,方法很艰难,创建了一个编码函数,手动生成url编码字符串

var order = {
    OrderRef: '100101',
    OrderDate: new Date('02/02/2015'),
    CustomerName: 'ACME Installations Ltd',
    Value: 525.00,
    encode: function () {
        return "OrderRef=" + encodeURIComponent(this.OrderRef) + "&OrderDate=" + encodeURIComponent(this.OrderDate.toUTCString()) +
            "&CustomerName=" + encodeURIComponent(this.CustomerName) +  "&Value=" + encodeURIComponent(this.Value) +
            "&Invoice=0";
    }
}
创建一个新类

 public class UTCDateTimeConverter : IsoDateTimeConverter
{
    public UTCDateTimeConverter()
    {
        base.DateTimeFormat = "yyyy-MM-dd";
    }
}
现在转换如下

    [JsonProperty("label")]
    [JsonConverter(typeof(UTCDateTimeConverter))]
    public DateTime label { get; set; } 

我在这里没有看到任何JSON,也不知道JSON日期是什么意思。如果要控制日期的输出格式,请使用日期对象可用的各种方法。您的示例似乎也很简单,如果您知道本例中的日期2015年2月2日,为什么不直接以您想要的格式将其写入OrderDate?json没有日期。json只是javascript数据结构的文本编码。如果您希望json中包含UTC日期,那么您必须确保编码的任何数据结构都以UTC格式的字符串开头。您的问题措辞错误,但如果我理解您的意图,您正在寻找类似date.ToutString@HowardRenollet的内容:我已经尝试过了,但是由于我使用的是引导UI,输入字段将不接受任何日期,除非使用日期创建日期。。。我已经更新了我的问题来澄清一些事情,因为我不认为momentjs能真正解决我的问题,除非我弄错了?