angularjs 日期筛选器不转换字符串格式的日期

dced5bon  于 2023-06-28  发布在  Angular
关注(0)|答案(1)|浏览(141)

从后端端我得到字符串格式的日期在'YYYYMMDDHHMMSS'格式内的响应。我必须显示模板上所有用户的最后联系日期,因此我应用了ng-repeat,并在插值中尝试绑定{{lastContactedDate| date:“yyyy-mm-dd”}}但不会筛选正确的日期
示例-当我尝试使用日期过滤器绑定门户时,我从后端获取lastContactedDate为“20230620131921”,它打印2611-01-31(yyyy-mm-dd)格式
你能给我正确的方法来转换或过滤日期吗?
lastContactedDate为“20230620131921”{{lastContactedDate|日期:“yyyy-mm-dd”}}
应打印2023-06-20

oaxa6hgo

oaxa6hgo1#

AngularJS date过滤器需要有效的JavaScript Date对象或有效的日期字符串作为输入。在您的示例中,您有一个格式为“YYYYMMDDHHMMSS”的字符串,过滤器不能直接将其识别为有效的日期格式。
要将字符串转换为日期过滤器可以理解的有效date,可以在控制器中创建自定义过滤器或函数来解析字符串并将其转换为Date对象。

app.filter('customDateFilter', function() {
  return function(input) {
    
    var year = input.substring(0, 4);
    var month = input.substring(4, 6);
    var day = input.substring(6, 8);
    var date = new Date(year, month - 1, day);
    return date | date: "yyyy-MM-dd";
  };
});

然后,您可以在模板中使用这个自定义过滤器,如下所示

{{ lastContactedDate | customDateFilter }}

相关问题