首页 > 解决方案 > getTime() 格式为“日-月-年”(Angular)

问题描述

在数据库中,我有一个格式的出生日期day-month-year(如“ 12-07-199713-07-1997”)。我想得到一个年龄并使用这样的功能:

if (birthday) {
  let timeDiff = Math.abs(Date.now() - new Date(birthday).getTime());
  let age = Math.floor(timeDiff / (24 * 3600 * 1000) / 365.25);
  console.log(age + ' y.o.')
}

在第一个示例中,它返回22 y.o.,但如果13-07-1997我有NaN y.o.. 我认为这是日期格式的原因。任何想法我应该如何getTime()在这里正确使用?

非常感谢您的帮助!

标签: angulardategettime

解决方案


new Date('13-07-1997')正在得到Invalid Date,这就是你得到的原因NaN,请尝试下面的代码

  let birthdayString="13-07-1997";
  let dateParts = birthdayString.split("-");
  let newB=new Date(+dateParts[2], parseInt(dateParts[1]) - 1, +dateParts[0]);
  var ageDifMs = Date.now() - newB.getTime();
  var ageDate = new Date(ageDifMs); // miliseconds from epoch
  console.log("your age is" ,Math.abs(ageDate.getUTCFullYear() - 1970));


推荐阅读