应该在两个日期之间最多不超过30天。

huangapple go评论68阅读模式
英文:

should be a maximum of 30 days between two dates

问题

我需要验证两个参数,如下所示。验证应该如下所示:

 startDate - endDate < 30 天
  startDate: Joi.date().default(new Date()),
  endDate: Joi.date().default(new Date()),

当我这样做时,我遇到了一个错误。

Joi.object({
  startDate: Joi.date().default(new Date()),
  endDate: Joi.date().less(Joi.ref('startDate') + 50000).default(new Date()),
})
// 错误 - AssertError: 日期必须具有有效的日期格式或引用

我正在尝试对两个日期参数进行验证。

英文:

I need to validate 2 parameters, as you see below. Validation should be like this:

 startDate - endDate &lt; 30 days
  startDate: Joi.date().default(new Date()),
  endDate: Joi.date().default(new Date()),

And when I do like that, I am getting an error.

Joi.object({
  startDate: Joi.date().default(new Date()),
  endDate: Joi.date().less(Joi.ref(&#39;startDate&#39;) + 50000).default(new Date()),
})
// error - AssertError: date must have a valid date format or reference

I am trying to add validation to 2 date parameters.

答案1

得分: 2

你需要使用 Joi.ref 的 adjust 选项,以及 js 日期的 getTime()

adjust 允许在进行验证之前操作引用的值(startDate)。

getTime 返回日期的毫秒数,因此我们可以将毫秒数添加到它。

const t = Joi.object({
  startDate: Joi.date().default(new Date()),
  endDate: Joi.date()
              .less(
                   Joi.ref("startDate", {
                            adjust: (v) => v.getTime() + (29 * 24 * 60 * 60 * 1000),
                   })
               )
               .default(new Date()),
  });
英文:

You need to use Joi.ref's adjust option along with js date's getTime()

adjust allows to manipulate referenced value (startDate) before doing the validation.

getTime returns the date in milliseconds so we can add milliseconds to it.

const t = Joi.object({
  startDate: Joi.date().default(new Date()),
  endDate: Joi.date()
              .less(
                   Joi.ref(&quot;startDate&quot;, {
                            adjust: (v) =&gt; v.getTime() + (29 * 24 * 60 * 60 * 1000),
                   })
               )
               .default(new Date()),
  });

huangapple
  • 本文由 发表于 2023年5月10日 12:50:31
  • 转载请务必保留本文链接:https://go.coder-hub.com/76214994.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定