Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
Angularjs 角度时间格式不正确_Angularjs - Fatal编程技术网

Angularjs 角度时间格式不正确

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,

我正在从服务中获取以下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,
      "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]
  };
});