Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

246
Visualizações
¿Cómo puedo hacer que mi campo de fecha API sea de 3 días hábiles a partir de la fecha de hoy teniendo en cuenta los fines de semana (sábados y domingos) usando JS?

Estoy usando javascript para comunicarme con la API de la plataforma. ¡Solo tenga una pregunta rápida!

Hay un selector de fecha en el que puede hacer clic y elegir cualquier fecha. Mi tarea aquí es crear un código JS que pueda comunicarse con la variable Fecha y no le permita seleccionar una fecha de más de 3 días hábiles, por ejemplo: hoy es 22/04 y el máximo que se puede seleccionar es 25/04. Ya he creado este código que puedes ver a continuación.

Mi pregunta es ¿cómo puedo tener en cuenta los fines de semana en este código? Por ejemplo, si los sábados y los domingos caen dentro, no se contarán. ¡Solo se contarán los días hábiles!

¡Cualquier ayuda será muy apreciada!

Fragmento de código:

 const DateVar = "DATE"; /* name of the date variable in Checkbox to apply validation to */ events[`change:${DateVar}`] = async () => { const days = 3; /* how many days from today the user is able to select dates*/ const today = new Date(); let validationPeriodStart = new Date(today.setDate(today.getDate() + days)); /* VALIDATION FUNCTION */ const result = form.ShowCustomValidation(DateVar, [(value) => { /* transform the selected date into JS Date object */ const selectedDate = new Date(value); /* validate if the selected date is before the period where user can select dates (today + 3 weeks and onward) */ const RESULT = value && selectedDate < validationPeriodStart ? `Error: Please make sure your date is after the ${validationPeriodStart.toLocaleDateString('en-SG')}` : undefined; return RESULT; } ]); /* throw a pop-up error in the top right corner - remove if not required */ if (result) { form.SetError(result) }; }; addEvents(events);```
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Una solución completa tendría en cuenta los días festivos de fechas fijas y variables y, por lo tanto, dependería en gran medida de datos de geolocalización precisos. Una solución menos exigente recolectaría bases de datos de días festivos para lugares relevantes compilando estructuras de datos de calendario local que incluyan una bandera de días festivos.

Para el paso básico de excluir los sábados y domingos, utilice el método Date.getDay() .

El siguiente código de ejemplo (reemplace su línea de código let validationPeriodStart = new Date(today.setDate(today.getDate() + days));`` with it) define una fecha actual y la avanza en pasos de 1 día, cada turno de prueba para sábado/domingo, hasta agotar el horizonte de fecha y hora. Los cálculos se realizan en el dominio de la época definida por milisegundos desde el 01/01/1970.

 let d_current = new Date() , n_horizonDistance = days , validationPeriodStart ; while (n_horizonDistance > 0) { let n_dow = d_current.getDay() ; if ((n_dow !== 0) && (n_dow !== 6)) { n_horizonDistance--; } d_current = new Date(d_current.getTime() + 1000 * 3600 * 24); // + 1 day }

El método tiene en cuenta los desbordamientos de meses y años (incluidos los años bisiestos), pero no el horario de verano. Se puede ampliar fácilmente, p. comprobación de vacaciones. Consulte MDN Docs para obtener más información sobre el objeto JS Date y sus características.

Se logra una mayor flexibilidad y un código más limpio al precalcular las fechas de corte durante un cierto período de tiempo y almacenar los datos en la base de datos del lado del servidor.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda