我有一个使用 AngularJS在WebApi和前端编写的后端服务。从后端我已经返回DateTime,如下所示
public async Task<DateTime> GetDateTime(Guid id)
{
DateTime dateTime = GetDateTime();
return dateTime;
}
在角度控制器内部,我收到了这样的响应
service.getDateTime({
id: $scope.id
},
function(data) {
$scope.minSelectedScheduleDate = new Date(data);
$scope.isBusy = false;
},
function(response) {
$scope.isBusy = false;
});
但minSelectedScheduleDate
成为无效日期。
当我试图将数据看到控制台时,我看到了类似的内容:
Resource {
0: "2",
1: "0",
2: "1",
3: "6",
4: "-",
5: "1",
6: "0",
7: "-",
8: "2",
9: "8",
10: "T",
11: "1",
12: "1",
13: ":",
14: "3",
15: "0",
16: ":",
17: "0",
18: "0"
}
我的问题是,如何在角度控制器中收到有效日期?
答案 0 :(得分:1)
您应该从网络API中以ISO8601格式返回日期字符串。要将字符串转换为日期,您需要在日期调用parse方法。
$scope.minSelectedScheduleDate = Date.parse(data);
答案 1 :(得分:0)
我认为你以字符串的对象格式得到日期作为回应,所以试试这个
function(data) {
var dateString="";
for(var prop in data)
dateString+=data[prop];
$scope.minSelectedScheduleDate=new Date(dateString);
}
答案 2 :(得分:0)
问题是我直接返回DateTime对象。如果我从我的控制器返回一个匿名对象,那么Javascript反序列化一切正常。这是我现在的控制器:
public async Task<DateTime> GetDateTime(Guid id)
{
DateTime dateTime = GetDateTime();
return new
{
ScheduleDate = dateTime
};
}
答案 3 :(得分:0)
我们有一个Angular应用程序,该应用程序从WebApi服务返回RevificationDate:Date属性。加载后要做的第一件事是将其转换为javascript日期,如下所示:
// convert WebApi date format to javascript format
myJsonObject.revisionDate = new Date(myJsonObject.revisionDate.toString());