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

111
Vistas
mostrar un número dado todos los días de la semana, luego volver al día 1 en JS

Necesito hacer un número dado en un div, los números son diferentes para cada día de la semana, pero al final del último día de la semana, el número debe ser el del primer día. Traté de hacer este script, pero solo puedo mostrar el número del día 1, día 2, 4, etc. no cambia en absoluto, ¿qué estoy haciendo mal?

Por cierto, tengo algunos divs, y los números deben ser diferentes para cada div, así que uso Content.makeNumber = function (day1, day2, day3, day4, day5, day6, day7 para ello. Y el número debería aumentar incluso después recargar, así que tomo la fecha de localStorage

 const Content = {}; Content.makeNumber = function (day1, day2, day3, day4, day5, day6, day7) { let date = localStorage.getItem("date"); const week = 60*60*24*7; if (date === null) { const now = Date.now(); localStorage.setItem('date', 'now'); localStorage.setItem('dateWeekEnd', 'now' + 'week'); return day1; } else { } date = Number(localStorage.getItem('date')); const dateNow = Number(localStorage.getItem('dateWeekEnd')); const dateCount = (dateNow - date) / week; let res switch (dateCount) { case 1: res = day1; break; case 2: res = day2; break; case 3: res = day3; break; case 4: res = day4; break; case 5: res = day5; break; case 6: res = day6; break; case 7: res = day7; break; default: res = day1; break; } return res; }; export default Content;
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

La fecha de JavaScript tiene una función getDay que devuelve un número del 1 al 7, podría usar eso.

Alternativamente, el módulo ( % ) también funcionará para usted

 switch (dateCount % 7 + 1) { ... }

podría funcionar para usted

 for(let i = 0; i <= 32; i ++){ console.log(i, " becomes: ", i % 7 + 1) }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Está llamando a Date.now() solo si la variable "fecha" del almacenamiento local está configurada. Cuando hace esto, configura "dateWeekEnd" en el almacenamiento local y no lo actualiza nuevamente. Esto hace que no cambie.

Creo que lo que quieres es reemplazar

 const dateNow = Number(localStorage.getItem('dateWeekEnd'));

con

 const dateNow = Date.now()

para que se actualice en función de la fecha actual.

También queremos cambiar un poco las matemáticas en DateCount. Debería ser

 const dateCount = Math.floor(((dateNow - date) / week)*7)%7;

porque (dateNow-date) nos da cuántos milisegundos han pasado desde la fecha, dividir por semana nos dice qué parte de una semana ha pasado. Multiplica por 7 para obtener el día. Piso para obtener un número entero en lugar de un decimal. Tómelo en módulo 7 para que vuelva a 0 si llega a 7. Entonces dateCount es un número entero de 0-6. Para mantener su declaración de cambio actual, agregue 1 para que sea 1-7.

Sin embargo, recomendaría usar una matriz para almacenar las palabras del día y usar dateCount como un índice de esa matriz para evitar las declaraciones de cambio largas. En total esto nos da

 const Content = {}; Content.makeNumber = function (dateWords) { let date = localStorage.getItem("date"); const week = 60*60*24*7; if (date === null) { const now = Date.now(); localStorage.setItem('date', 'now'); localStorage.setItem('dateWeekEnd', 'now' + 'week'); } date = Number(localStorage.getItem('date')); const dateNow = Date.now(); const dateCount = Math.floor(((dateNow - date) / week)*7)%7; let res = dateWords[dateCount] return res; }; export default Content;

donde dateWords es una matriz que contiene [day1, day2, ... day7]

Para limpiarlo aún más, considere cómo reemplazar la variable de semana con una variable de día cambiaría las matemáticas, y si necesita establecer la fecha de fin de semana en el almacenamiento local.

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