【发布时间】:2021-12-16 15:16:47
【问题描述】:
我正在尝试构建一个日期预订功能,该功能会根据所选日期和与该预订相关的费用返回预订的总费用。
我已将日期转换为毫秒,并且正在循环访问分配给成本的可能日期范围(例如,12 月 15 日 - 1 月 15 日 = 每晚 220 美元)。
然后我想将日期落在特定日期范围内的次数存储在本地存储中,这样我就可以在将日期落在日期范围内的次数乘以该日期的次数结束时进行数学运算成本。
我的问题是我不确定我是否正确地增加了本地存储中的计数,如下面的屏幕截图所示
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')
}
【问题讨论】:
-
你为什么要在一个缓慢的、只有字符串的本地存储项而不是本地整数变量中这样做?您仍然可以在循环之后将该值存储在本地存储中。
-
您在循环的每次迭代中将值重置为
0。在循环之前只进行一次初始化。 -
是的,不要使用 localStorage(或者只是在循环之后将结果放在那里。)也不要假设所有的日子都是 86400000 长。
标签: javascript google-chrome browser