Angular 日期选择器-以毫秒为单位的日期-生日检查
我有一个日期选择器,它返回选定的生日日期: I转换为日期(毫秒):Angular 日期选择器-以毫秒为单位的日期-生日检查,angular,date,Angular,Date,我有一个日期选择器,它返回选定的生日日期: I转换为日期(毫秒): var datebirth = this.CreateUserForm.get('bdate').value; var tempdate = new Date(datebirth.year, datebirth.month-1, datebirth.day); user.bdate = tempdate.getTime(); 现在我计算年龄(有效) 它返回正确的年龄。 现在我要检查的是今天是生日 var
var datebirth = this.CreateUserForm.get('bdate').value;
var tempdate = new Date(datebirth.year, datebirth.month-1, datebirth.day);
user.bdate = tempdate.getTime();
现在我计算年龄(有效)
它返回正确的年龄。
现在我要检查的是今天是生日
var datetoday = new Date();
console.log ('with HOURS '+datetoday.getTime());
datetoday.setHours(0,0,0,0);
console.log ('without HOURS '+datetoday.getTime());
var ageDifMs = datetoday.getTime() - tempdate.getTime();
var age = Math.floor(ageDifMs / 1000 / 60 / 60 / 24 / 365);
var agefull = ageDifMs / 1000 / 60 / 60 / 24 / 365;
if(age===agefull){
bdaytoday= true;
}
2019年有效,但早年有效(例如2010年)
我得到了这个结果
年龄:9
年龄:9.005593607305936
如果我用数学,每天都会是生日
感谢乔尔·约瑟夫:
datetoday.setFullYear(0);
tempdate.setFullYear(0);
if(datetoday.valueOf()===tempdate.valueOf()){
bdaytoday= true;
}
这样就行了!:D试着只比较今天的日期和出生日期,如下所示:
var tempDate = new Date('2019-10-29')
tempDate.getTime() === new Date().setHours(0, 0, 0, 0);
请检查此项,可以帮助您:
var tempDate = new Date('2019-10-29')
tempDate.getTime() === new Date().setHours(0, 0, 0, 0);