Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 日期选择器-以毫秒为单位的日期-生日检查_Angular_Date - Fatal编程技术网

Angular 日期选择器-以毫秒为单位的日期-生日检查

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

我有一个日期选择器,它返回选定的生日日期:

I转换为日期(毫秒):

   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);