Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

405
Vistas
yup date validation - Start Date must not be same as end date

I am currently stuck on how to do validation with yup for same date.

Currently I am able to validate if endDate is not before startDate using :

schema = yup.object().shape({
  startDate: yup.date().min(new Date(),'Please choose future date'),
  endDate: yup
          .date()
          .min(
             yup.ref("startDate"),
             "End date has to be more than start date"
          ),
})

But it is not checking for same date. I am well aware of this thread : Date range validation - Start Date must not be same as End Date in jquense / yup , but it is not solved yet and using momentjs. My company is strictly using dayjs for this project.

I hope you can help me with solution using JS or dayjs.

Thanks !

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

You can use this:

schema = yup.object().shape({
  startDate: yup.date().min(new Date(),'Please choose future date'),    
  endDate: yup
              .date()    
              .when('startDate',
                            (startDate, schema) => {
                                if (startDate) {
                                const dayAfter = new Date(startDate.getTime() + 86400000);
                              
                                    return schema.min(dayAfter, 'End date has to be after than start date');
                                  }
                              
                                  return schema;
                                
                            }),
})
about 4 years ago · Juan Pablo Isaza Denunciar

0

Here is a solution that worked for me.


const validationSchema = Yup.object({
  startDate: Yup.date().required(),
  endDate: Yup.date().test(
    "same_dates_test",
    "Start and end dates must not be equal.",
    function (value) {
      const { startDate } = this.parent;
      return value.getTime() !== startDate.getTime();
    }
  ),
});

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda