从ng-repeat中出生日期Angularjs获得年龄

时间:2015-02-09 19:41:22

标签: angularjs

 <tr ng-repeat="player in team.players">
          <td>{{player.dateOfBirth}}</td>
...

由此我以这种格式取回出生日期:1987-01-24。我怎样才能从中获得这个年龄?

2 个答案:

答案 0 :(得分:2)

将以下内容添加到您的控制器:

$scope.calculateAge = function(birthday) { // pass in player.dateOfBirth
    var ageDifMs = Date.now() - new Date(birthday);
    var ageDate = new Date(ageDifMs); // miliseconds from epoch
    return Math.abs(ageDate.getUTCFullYear() - 1970);
}

然后,只需使用您的模型:

<tr ng-repeat="player in team.players">
    <td ng-model="calculateAge(player.dateOfBirth)"></td>

答案 1 :(得分:2)

<强> HTML

<td>{{ player.dateOfBirth | ageFilter }}</td>

<强> JS

app.filter('ageFilter', function () {
    function calculateAge (birthday) { // birthday is a date
        var date = new Date(birthday);
        var ageDifMs = Date.now() - date.getTime();
        var ageDate = new Date(ageDifMs); // miliseconds from epoch
        return Math.abs(ageDate.getUTCFullYear() - 1970);
    }

    return function (birthdate) {
        return calculateAge(birthdate);
    };
});

<强> JSFIDDLE