Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

122
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!