【问题标题】:Joi: Validate date to be greater than x days from nowJoi:验证日期是否大于从现在开始的 x 天
【发布时间】:2021-04-26 03:04:36
【问题描述】:

验证日期字段是否大于现在的 x 天。

现在我有这个 sn-p 来检查日期是否比现在大。

planned_date: Joi.date().greater('now').required()

但我想验证planned_date 比现在多至少 2 天。 这可能与moment.js 结合使用,但无法正常工作。

【问题讨论】:

  • 你能做这样的事情吗? const dateLater = moment.tz(new Date(), '').unix() + 48 * 60 * 60 这将在 2 天后的同一时间为您提供日期,然后您可以稍后再执行此操作 planned_date: Joi.date().greater(dateLater).required()
  • @reD 在这里我只是担心 dateLater 可能会成为一个硬值,而不是每次都被评估。如果可行,我会尝试。
  • 另外,JOI 内置的东西会更好。
  • 啊,如果在 joi 上构建了任何东西,实际上是 idk,但这肯定会起作用。 planned_date: Joi.date().required().greater(Date.now() + 48 * 60 * 60 * 1000)
  • @rED 你上面的评论 'Date.now() + 48 * 60 * 60 * 1000' 对我很有效。我认为您也可以将其添加为答案。

标签: node.js validation hapijs joi


【解决方案1】:

这将检查大于 2 天的日期,我们正在做的是使用 Date.now() 在 epoch 中获取当前时间戳,稍后在 epoch 中添加 2 天时间以获得我们想要的验证。

planned_date: Joi.date().required().greater(Date.now() + 48 * 60 * 60 * 1000)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多