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

125
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 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