Jquery 如何将JSON日期转换为UTC格式
在回顾了这些评论之后,我决定澄清我的问题,以便更清楚地了解问题的具体内容以及我正在努力做什么 我正在尝试采用角度引导形式,该形式是绑定到作用域上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失败并出现错误 以以下代码为例转换对象时: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-
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能真正解决我的问题,除非我弄错了?