8

我在 Yup 中有这个模式,它对日期字段设置了最小日期约束:

Yup.date()
   .required(strings.RequiredField(strings.Invoice_Label_DueDate))
   .min(new Date(), "Date cannot be in the past")

但是如果我选择当前日期,它仍然会计算它是过去的。请注意,当我这样做时不会发生这种情况max(new Date(), ...)。在这种情况下,它包括所有过去的日期,包括当前日期。

编辑:这是问题的一个例子https://codesandbox.io/s/jznz5vl7lw

4

2 回答 2

1

您还可以使用:

const today = new Date();
today.setHours(0, 0, 0, 0)

然后

.min(today, 'Date cannot be in the past')
于 2020-07-09T16:36:41.150 回答
1

如果要将最小值设置为昨天的日期,可以声明一个变量并将其设置为昨天的日期,例如(还有很多其他方法):

const yesterday = new Date(Date.now() -86400000);

然后:

.min(yesterday, "Date cannot be in the past")
于 2020-05-18T14:01:20.660 回答