如果出生日期格式为YYYYMMDD,我如何计算年龄?是否可以使用该Date()功能?
我正在寻找比我现在使用的解决方案更好的解决方案:
var dob = '19800810';
var year = Number(dob.substr(0, 4));
var month = Number(dob.substr(4, 2)) - 1;
var day = Number(dob.substr(6, 2));
var today = new Date();
var age = today.getFullYear() - year;
if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) {
age--;
}
alert(age);Run Code Online (Sandbox Code Playgroud)
我正在尝试使用angular指令验证年龄(即大于18).谁能帮我验证年龄?
<input type="date" data-ng-model="personalDetailsObj.personalDetails.dob" name="dob" ng-required="true" ng-class="{ 'has-errors' : personalDetailForm.dob.$invalid, 'no-errors' : personalDetailForm.dob.$valid}" age-valid="18">
Run Code Online (Sandbox Code Playgroud)
.directive('ageValid', ['$filter', function($filter) {
return {
restrict: 'A',
require: 'ngModel',
scope: {
ageValid: '='
},
link: function(scope, element, attrs) {
scope.$watch(attrs.ngModel, function(value) {
var todayDate = new Date(),
todayYear = todayDate.getFullYear(),
todayMonth = todayDate.getMonth(),
todayDay = todayDate.getDate(),
dateFieldVal = value;
console.log(dateFieldVal);
var formattedDate = $filter('date')(dateFieldVal,'yyyy-MM-dd');
console.log(formattedDate);
/*var isValid = (value.length === $scope.ngLength);
ngModel.$setValidity($attrs.ngModel, isValid);*/
});
}
}
}])
Run Code Online (Sandbox Code Playgroud)