我发送了几个属性作为json,datetime属性转移了某种破坏,其他所有都没问题。
我如何在javascript中收到datetim属性:
已创建:" /日期(1441198490467 + 0200)/"
这将是理想的日期: 02.09.2015 14:54:50
我该如何解决这个问题?
C#:
web服务:
[System.ServiceModel.OperationContract]
[System.ServiceModel.Web.WebGet(UriTemplate = "PeekCustomer", ResponseFormat = WebMessageFormat.Json)]
System.Collections.Generic.List<BusinessObjects.Customer> PeekCustomers();
日期属性:
public DateTime Created {
get;
set;
}
访问数据:
while (reader.Read()) {
result.Add(new BusinessObjects.Customer {
ID = reader.GetGuid(0),
Name = reader.GetString(1),
Created = reader.GetDateTime(2)
});
}
的Javascript(角):
app.config(function(RestangularProvider){
RestangularProvider.setBaseUrl('http://localhost:31896/BusinessService.svc/');
RestangularProvider.setDefaultRequestParams('jsonp', { callback: 'JSON_CALLBACK' });
RestangularProvider.setFullResponse(true);
});
服务:
Restangular.all('').customGET('PeekCustomer').then(function (result){
data.customers = result;
})
答案 0 :(得分:1)
好吧,您的约会日期将以JSON格式转移。您可以在客户端上将其转换回所需的格式(例如,甚至可以更正用户所在的时区)。看来你的客户并没有将日期格式评估回脚本(并且没有提供data.customers
只做猜测的事情。
作为一种变通方法,您可以将Created
属性的数据类型更改为字符串,并使用正确的格式字符串对其进行格式化。但一般来说,首先检查您的客户端脚本。
答案 1 :(得分:0)
经过几个小时的搜索后,我发现遇到了同样问题的人:
How do I format a Microsoft JSON date?
以下是代码:
//service:
Restangular.all('').customGET('PeekCustomer').then(function (result){
data.customers = angular.copy(result);
data.customers = data.customers.data;
for(var i = 0; i <= data.customers.length - 1; i++) {
data.customers[i].Created = new Date(parseInt(data.customers[i].Created.substr(6)));
}
})
//markup:
{{customer.Created | date:"yyyy-MM-dd HH:mm"}}
JSON日期是关键字。