Дата ограничения размещения React zodResolver должна быть больше, чем сейчас
Я использую библиотеку zod для проверки своих форм реакции. Я использую эту схему.
import * as zod from "zod";
export const appointmentSchema = zod.object({
title: zod.string().nonempty("Please enter a title"),
description: zod.string(),
scheduledDate: zod.date()
});
export type appointmentFormData = zod.infer<typeof appointmentSchema>;
Есть ли способ добавить проверку к datetime, чтобы выдать ошибку, если отправленное datetime больше date.now?
2 ответа
Вам следует попробовать вот так:
import * as zod from "zod";
export const appointmentSchema = zod.object({
title: zod.string().nonempty("Please enter a title"),
description: zod.string(),
scheduledDate: zod
.instanceof(Date, { message: 'The Date field is required.' })
.refine((date) => {
return date < new Date(Date.now());
}, "The date must be before today"),
});
export type appointmentFormData = zod.infer<typeof appointmentSchema>;
Немного поздно, но на всякий случай, если кто-то предпочитает более невмешательство
const utcCheck = (kind: "min" | "max", offset = 0) => ({
kind: kind,
get value() {
return Date.now() + offset;
}
});
использовать как
zod.date()._addCheck(utcCheck("max"))