Javascript Luxon.js以年为单位获取“现在”和“输入日期”之间的差异

Javascript Luxon.js以年为单位获取“现在”和“输入日期”之间的差异,javascript,luxon,Javascript,Luxon,我正在使用luxon.js,想检查一下,用户的年龄是否超过21岁。 代码,我正在使用它 const isTooYoung = date => DateTime.fromFormat(date, 'dd.MM.yyyy') .diffNow() .as('years') < -21; 小提琴: 那么,什么是解决问题的正确方法来检查用户的年龄是否超过x年呢?在持续时间单位之间转换是有损的,因为年并不都是相同的长度,而Luxon已经“丢失”了持续时间来源于特定时间跨度

我正在使用luxon.js,想检查一下,用户的年龄是否超过21岁。 代码,我正在使用它

const isTooYoung = date =>
  DateTime.fromFormat(date, 'dd.MM.yyyy')
    .diffNow()
    .as('years') < -21;
小提琴:


那么,什么是解决问题的正确方法来检查用户的年龄是否超过x年呢?

在持续时间单位之间转换是有损的,因为年并不都是相同的长度,而Luxon已经“丢失”了持续时间来源于特定时间跨度的知识。文档中有一个关于此的部分:

幸运的是,解决方法很简单:只需在几年内完成差异。然后,Luxon将知道如何根据实际日历年进行计算:

// now is 27.11.2019

const isTooYoung = date =>
  luxon.DateTime.fromFormat(date, 'dd.MM.yyyy')
    .diffNow('years')
    .years < -21;

console.log(isTooYoung('15.11.1998'))
console.log(isTooYoung('30.11.1998'))
//现在是2019年11月27日
const isTooYoung=日期=>
luxon.DateTime.fromFormat(日期'dd.MM.yyyy')
.diffNow(“年”)
.年<-21岁;
console.log(isTooYoung('15.11.1998'))
console.log(isTooYoung('30.11.1998'))
小提琴:

// now is 27.11.2019

const isTooYoung = date =>
  luxon.DateTime.fromFormat(date, 'dd.MM.yyyy')
    .diffNow('years')
    .years < -21;

console.log(isTooYoung('15.11.1998'))
console.log(isTooYoung('30.11.1998'))