将时间戳保存在" localStorage"并保留这些标记

时间:2018-01-30 13:57:27

标签: javascript html local-storage

我有一个点标记应用程序。 工作原理如下:每次点击按钮我都保存了时间戳, 你只能拨打四次(这已经完成)。 我需要在" localStorage"中保存四个时间戳。并保留这些标记而不会过期,另一天制作并在前一天的标记下方显示新标记。



function getTime() {
  document.querySelector("button").setAttribute("onclick", "popupAlert()");

  var storedNames = JSON.parse(localStorage.getItem("names"));
  var data = new Date();
  var full_time = data.getHours() + ":" + data.getMinutes() + ":" +
    data.getSeconds();
  var completeDate = full_time;

  localStorage.setItem('completeDate', completeDate);

  document.getElementById("markTimes").insertAdjacentHTML('beforeend',
    '<span class="dataTime" id="dataTimeStl">' + completeDate + ' </span>');
  var qtd = document.getElementsByClassName("dataTime").length;

  if (qtd < 4) {
    setTimeout(function() {
      document.querySelector("button").setAttribute("onclick", "getTime()");
    }, 3000);
  } else {
    document.querySelector("button").disabled = true;
    console.log("fim");
  }
}
&#13;
<button onclick="getTime()">Marcar</button>
<div id="markTimes"></div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您需要存储一个数组:

所以代替你的行

localStorage.setItem('completeDate', completeDate);

执行以下操作:

const savedDates = localStorage.getItem('completeDate')

let dates
if (savedDates) {
  dates = JSON.parse(savedDates)

  dates.push(completeDate)
} else {
  dates = [completeDate]
}

localStorage.setItem('completeDate', JSON.stringify(dates))

它将在数组中添加项目并将其保存回来。 不幸的是,您需要为localStorage

解析,修改和字符串化数据