joi:比较两个可选日期

问题描述

我有一个要由 joi 验证的 json。它包含两个可选的日期字段:开始和结束。所以我想比较它们以确保开始日期早于结束日期。

如果它们都是必填字段,我知道该怎么做:

end: Joi.date().iso().min(Joi.ref('start'))

问题是它们是可选字段,因此在有结束日期但没有开始日期时失败:

"cause": "[{\"end\":\"\\\"end\\\" date references \\\"ref:start\\\" which must have a valid date format\"}]"

如果两个日期都存在,我如何比较两个日期?

谢谢!

编辑:我刚刚找到了一种方法

.min(
    Joi.ref("start",{
      adjust: (value) => (value ? value : new Date(1970,1,1)),})
  ),

如果开始日期不存在,此代码会将结束日期与 1/1/1970 进行比较。

现在,我很好奇是否有另一种更好或更简洁的方法来做到这一点。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)