Estoy tratando de crear una función de reserva de fechas que devuelva el costo total de una reserva en función de las fechas seleccionadas y el costo asociado con esa reserva.
He convertido las fechas en milisegundos y estoy recorriendo los posibles rangos de fechas a los que se asignan los costos (15 de diciembre - 15 de enero = 220 dólares por noche, por ejemplo).
Luego, quiero almacenar en el almacenamiento local la cantidad de veces que una fecha cae dentro de un rango de fechas particular para poder hacer los cálculos al final de multiplicar la cantidad de veces que las fechas caen dentro de un rango de fechas y multiplicar por ese costo.
Mi problema es que no estoy seguro de si estoy incrementando correctamente el conteo en el almacenamiento local como se muestra en la captura de pantalla a continuación.
for (let i = 0; i < daysDifference; i++) { //for loop to go through each day let dayDot = startTime + (i * 86400000); // getting the range for each day of the booking in millisecs localStorage.setItem("dayscost0", "0") //setting day count in each range to zero in local storage if (dayDot <= 1639746000000 && dayDot >= 1634648400000) { // setting range for price blocks let cost = (parseInt(localStorage.getItem('dayscost0')) + 1); //incrementing by one each time a value fits the range localStorage.setItem("dayscost0", cost.toString()) //adding the value to local storage console.log('dayscost0') }El problema es que siempre hay reinicialización - localStorage.setItem("dayscost0", "0") en cada iteración. Intente moverlo fuera del bucle for.
localStorage.setItem("dayscost0", "0") //setting day count in each range to zero in local storage for (let i = 0; i < daysDifference; i++) { //for loop to go through each day let dayDot = startTime + (i * 86400000); // getting the range for each day of the booking in millisecs if (dayDot <= 1639746000000 && dayDot >= 1634648400000) { // setting range for price blocks let cost = (parseInt(localStorage.getItem('dayscost0')) + 1); //incrementing by one each time a value fits the range localStorage.setItem("dayscost0", cost.toString()) //adding the value to local storage console.log('dayscost0') } }