आप एक समारोह को लागू कर सकते हैं:
नियंत्रक:
$scope.calculateAge = function calculateAge(birthday) { // birthday is a date
var ageDifMs = Date.now() - birthday.getTime();
var ageDate = new Date(ageDifMs); // miliseconds from epoch
return Math.abs(ageDate.getUTCFullYear() - 1970);
}
एचटीएमएल
{{ calculateAge(friend.birthday) }}
या एक फिल्टर:
app.filter('ageFilter', function() {
function calculateAge(birthday) { // birthday is a date
var ageDifMs = Date.now() - birthday.getTime();
var ageDate = new Date(ageDifMs); // miliseconds from epoch
return Math.abs(ageDate.getUTCFullYear() - 1970);
}
return function(birthdate) {
return calculateAge(birthdate);
};
});
एचटीएमएल
+०१२३५१६४१०६१
{{ friend.birthday | ageFilter }}
इस SO answer से लिया गया आयु एल्गोरिदम।
[संपादित करें] उम्र कम से कम 1 साल है, और आप महीने दिखाना चाहते हैं, तो आप महीने के अंतर की गणना करने के ageFilter संशोधित कर सकते हैं:
app.filter('ageFilter', function() {
function calculateAge(birthday) { // birthday is a date
var ageDifMs = Date.now() - birthday.getTime();
var ageDate = new Date(ageDifMs); // miliseconds from epoch
return Math.abs(ageDate.getUTCFullYear() - 1970);
}
function monthDiff(d1, d2) {
if (d1 < d2){
var months = d2.getMonth() - d1.getMonth();
return months <= 0 ? 0 : months;
}
return 0;
}
return function(birthdate) {
var age = calculateAge(birthdate);
if (age == 0)
return monthDiff(birthdate, new Date()) + ' months';
return age;
};
});
Demo Plunker - Age Function
Demo Plunker - Age Filter
Demo Plunker - Age Filter with Months < 1 year
धन्यवाद के लिए, सही काम करता है। – user1937021
यह अच्छी तरह से काम करता है।इस समाधान के लिए धन्यवाद। हालांकि, ऐसे मामलों में जहां एक बच्चे की आयु 1 वर्ष से कम है, उम्र को '0' के रूप में दिखाने की बजाय, मैं इसे कैसे संशोधित कर सकता हूं ताकि यह उम्र के लिए '6 महीने 'जैसे महीनों में दिखाया जा सके? – Neel
बच्चे के महीनों को शामिल करने के लिए अद्यतन उत्तर <1 वर्ष – pixelbits