格式为 'day-month-year' (Angular) 的 getTime()
getTime() in format 'day-month-year' (Angular)
在数据库中,我有一个格式为 day-month-year
的出生日期(例如“12-07-1997
, 13-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.')
}
在第一个示例中它是 returns 22 y.o.
,但是在 13-07-1997
的情况下我有 NaN y.o.
。
我认为这是日期格式的原因。有什么想法我应该如何在这里正确使用 getTime()
?
非常感谢任何帮助!
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));
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));
在数据库中,我有一个格式为 day-month-year
的出生日期(例如“12-07-1997
, 13-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.')
}
在第一个示例中它是 returns 22 y.o.
,但是在 13-07-1997
的情况下我有 NaN y.o.
。
我认为这是日期格式的原因。有什么想法我应该如何在这里正确使用 getTime()
?
非常感谢任何帮助!
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));
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));