如何根据相对日期验证 Joi 日期?

How to validate Joi date based on a relative date?

我知道您可以执行此操作来验证应该早于当前日期时间的日期:

const schema = Joi.object().keys({
    date: Joi.date().less("now").iso().required()
})

但是,我想更进一步,根据 "now" 或另一个字段的相对日期验证字段。

更具体地说,我想验证一个字段以确保它小于 ("now" + 12 小时) 或 ("other field" + 12 小时)。

我该怎么做?

您可以使用Joi.ref("someField") 来引用较少条件下的其他字段。如果你需要修改一些东西,那么你可以创建一个像这样的自定义函数

Joi.date().less(Joi.ref('someField', {"adjust": someField => return someField + 1}));

adjust 函数基本上采用传入引用字段的值和 returns 修改后的值。

希望对您有所帮助。