阅读时间缓存(快应用)

点击查看代码
// 定义全局变量
let startTime = null; // 记录开始时间
let elapsedTime = 0; // 记录已用时间

// 当用户进入阅读页面时调用该函数
function startReading() {
  const storedTime = parseInt(localStorage.getItem("elapsedTime")); // 获取之前保存的已用时间(单位:秒)
  const currentTime = new Date();

  // 如果是新的一天,则重置已用时间
  if (currentTime.getHours() === 0 && currentTime.getMinutes() === 0 && currentTime.getSeconds() === 0) {
    elapsedTime = 0;
    localStorage.setItem("elapsedTime", elapsedTime);
  } else {
    elapsedTime = storedTime || 0; // 如果之前有保存时间,则恢复已用时间
  }

  startTime = currentTime.getTime(); // 记录开始时间的时间戳
  setInterval(updateElapsedTime, 1000); // 每秒更新已用时间
}

// 更新已用时间
function updateElapsedTime() {
  const currentTime = new Date().getTime(); // 获取当前时间的时间戳
  elapsedTime += Math.floor((currentTime - startTime) / 1000); // 累加已用时间(单位:秒)

  // 将已用时间格式化为 hh:mm:ss
  const formattedTime = formatTime(elapsedTime);
  console.log("已用时间:" + formattedTime);

  // 判断是否达到领取福利的时间(30分钟)
  if (elapsedTime >= 1800) {
    console.log("达到领取福利的时间,请领取福利!");
  }

  // 判断是否达到领取更多福利的时间(60分钟)
  if (elapsedTime >= 3600) {
    console.log("达到领取更多福利的时间,请领取更多福利!");
  }

  startTime = currentTime; // 更新开始时间的时间戳
}

// 当用户离开阅读页面时调用该函数
function saveElapsedTime() {
  // 将已用时间保存到缓存中
  localStorage.setItem("elapsedTime", elapsedTime);
}

posted @ 2023-12-28 01:31  jialiangzai  阅读(31)  评论(0)    收藏  举报