我正在处理从 Angularjs get 请求返回的 json 数据。此数据来自 Sharepoint 列表。
日期是一个 json 日期字符串,如下所示 /Date(350697600000)/
所以我正在使用 Angularjs,我需要以“正常”方式或我想要的方式显示此日期。 json 数据是一个对象数组,因此我在无序列表中使用 ng-repeat 显示数据。我正在尝试制作一个自定义过滤器,它将用空字符串替换/Date( 和 )/,也就是说我只想要数字。当这个对象数组中的每个 json 日期显示在我的页面上时,我需要对其进行转换。
这是我迄今为止在自定义过滤器中的内容:
app.filter('dateFilter', function() {
return function(obj) {
return obj.replace(/\/([^a-zA-Z])\/ /gi, "");
}
});
我的 html 代码如下所示:
<li class="adv_li adv_li_birthday" ng-repeat="b in birthdays">
<div id="adv_birthday" ng-bind="b.Birthday | dateFilter | date:'d. MMMM yyyy'"></div>
<div ng-bind="b.Employee.Name"></div>
</li>
每个人都可以猜到我的过滤器不起作用。我真的不知道如何使用 .replace() ,或者即使使用自定义过滤器来解决这个问题是最好的主意。我需要一些帮助。希望我的问题不要含糊。
提前谢谢大家!
最佳答案
我有两种理论,我会同时解决它们。
首先,我认为您的过滤器应该返回一个日期,另外,我认为正则表达式可以改进。
app.filter('dateFilter', function() {
return function(obj) {
return new Date(parseInt(obj.replace(/\D/g, '')));
}
});
我正在使用该特定的 return 语句从相同格式获取日期,尽管它不在 Angular 项目中。
关于javascript - 自定义过滤器,用于替换从 Sharepoint 返回的 json 日期中的某些字符串字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28455482/