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

126
Visualizações
Compruebe si el día de la semana está entre el lunes y el domingo en nodejs

Estoy trabajando en una aplicación de alimentos como foodpanda, me enfrento a un problema de que el día de inicio de un restaurante es el lunes y el día de finalización es el viernes, estoy tratando de restringir que los usuarios no ordenen (Horario) sábado y domingo (o cualquier otro día cuando el restaurante estará fuera de servicio).

También tengo valores de día de inicio y día de finalización en mi base de datos.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede obtener el día actual con

 let x = new Date() x.getDay()

Si desea que el día sea una cadena en lugar de un número (0 a 6 en este caso), use

 var options = { weekday: 'long'}; console.log(new Intl.DateTimeFormat('en-US', options).format(x));

Ahora use el primero para la siguiente solución:

 let x = new Date().getDay() if (x < 5) return // cancel order here.
about 4 years ago · Juan Pablo Isaza Relatório

0

Parece ser una cuestión de evaluar si el día estádentro de un rango o no (número dentro de un rango de números).

Suponiendo que está usando días de domingo a sábado como 0 a 6, debería ser así:

 // Evaluating if a day is inside working shift ('_from' starting shift, '_to' ending shift) function inRange(day, _from, _to) { if(day >= _from && day <= _to) return true; return false; }

EDITAR: Después de pensarlo, hay algunos casos extremos que no hemos considerado.

Supongamos que tiene un día no laborable el lunes (lo que podría ser común en algunos países). Si intenta evaluarlo usando rangos, encontrará el domingo como un día no laborable también (ya que el domingo es 0, pero el rango comienza desde el lunes, que es 1).

Por lo tanto, debemos cambiar la lógica para verificar si el día solicitado no es laborable o no.

La forma más fácil de hacerlo es creando un diccionario, asignando cada día a un valor booleano que dirá si ese día es libre o no:

 let workingDays = { Sunday: true, Monday: true, Tuesday: true, Wednesday: true, Thursday: true, Friday: true, Saturday: true }

Luego, solo deberá especificar los días no laborables así

 // Working everyday except by Monday workingDays.Monday = false;

Finalmente, puede realizar verificaciones para verificar si el restaurante estará funcionando el día solicitado.

 // Am I working on Monday? if(workingDays.Monday) { // do something } else { // nope. Come another day. }

También puede especificar el nombre del campo como una cadena, lo cual es útil si desea verificar usando una variable

 let requestedDay; // fill this variable somewhere else ... // is the requested day available? if(workingDays[requestedDay]) { // Do something }

Finalmente, dado que el valor de retorno de getDay() es un número entero de 0 a 6, es posible que deba buscar por índice:

 // Monday == 1 if( workingDays[Object.keys(workingDays)[1]] ) // blabla

O podría envolverlo como una función para mejorar la legibilidad

 // Wrap function inside workingDays dictionary workingDays.at = function(n) { return this[Object.keys(this)[n]] }; // Usage workingDays.at(1); // gives Monday status (boolean)

Código definitivo:

 // Creating dictionary let workingDays = { Sunday: true, Monday: true, Tuesday: true, Wednesday: true, Thursday: true, Friday: true, Saturday: true, at: function(n) { return this[Object.keys(this)[n]] } } // Setting a day as non available workingDays.Monday = false; // or workingDays["Monday"] = false; // or workingDays.at(1) = false; // Verifying whether a given day is available if(workingDays[givenDay]) { // blabla } // or if(workingDays.at(number)) { // blabla }
about 4 years ago · Juan Pablo Isaza 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