Angularjs 角度时间格式不正确
我正在从服务中获取以下JSON:Angularjs 角度时间格式不正确,angularjs,Angularjs,我正在从服务中获取以下JSON: { "DailyEventCaseID": 1, "LocID": "LA ", "CourtRoom": "9", "CaseID": 3, "EventDate": "2015-09-14T00:00:00", "SortTime": "08:30", "SeqNumber": 1, "StatusID": null, "Case": { "CaseID": 3,
{
"DailyEventCaseID": 1,
"LocID": "LA ",
"CourtRoom": "9",
"CaseID": 3,
"EventDate": "2015-09-14T00:00:00",
"SortTime": "08:30",
"SeqNumber": 1,
"StatusID": null,
"Case": {
"CaseID": 3,
"CaseNumber": "BP118652",
"DivisionCode": "PR",
"District": "LA ",
"CaseTitle": "KRAUS, MARGARITH - TRUST DTD 07/07/98"
},
"Status": null,
"Events": [
{
"EventID": 9,
"DailyEventCaseID": 1,
"EntityNumber": "0020",
"EventName": "INSTRUCTIONS",
"DailyEventCase": null
}
]
}
我希望字段SortTime显示为上午8:30,因此我将其视为:
{{case.SortTime | date: 'h:mm a'}}
它仍然显示为8:30,而不是上午8:30
我做错了什么?在代码中,case.SortTime不是日期对象。它只是一根线。因此,不应用日期筛选器
方法1:
假设你只需要时间而不考虑日期,我建议你使用这种方法。但这不是一个好的做法。
在控制器中,您可以将case.SortTime作为
现在{{case.SortTime | date:'h:mm a'}}将为您提供AM/PM的日期。
请参阅以寻求帮助
方法2:创建自定义筛选器
var app = angular.module('app', []);
app.filter('timeFilter', function () {
return function (sortTime) {
var timeParams = sortTime.split(":");
timeParams[2] = "AM"
if(timeParams[0] >= 12){
timeParams[0] -= 12;
timeParams[2] = "PM"
}
return timeParams[0]+':'+timeParams[1]+' '+timeParams[2]
};
});
现在{case.SortTime | timeFilter}}将给出您需要的结果。JSON中的SortTime值没有关于它是am还是pm的信息,那么angular的日期筛选器如何才能解决这个问题呢?SortTime不是一个有效的日期。筛选器实际上根本无法解析您的时间,并且正在通过hanks传递它…根据您的回答,我们正在更改服务以返回日期/时间对象
var app = angular.module('app', []);
app.filter('timeFilter', function () {
return function (sortTime) {
var timeParams = sortTime.split(":");
timeParams[2] = "AM"
if(timeParams[0] >= 12){
timeParams[0] -= 12;
timeParams[2] = "PM"
}
return timeParams[0]+':'+timeParams[1]+' '+timeParams[2]
};
});