Дата ограничения размещения 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"))
Другие вопросы по тегам