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

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

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 Report

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