首页 > 解决方案 > 如何根据用户的 onclick 事件获取时间戳?

问题描述

我正在创建一个费用跟踪器应用程序,并希望了解如何根据用户单击提交按钮的时间获取保存用户的时间戳。

let timestamp = new Date().getTime();
let todate = new Date(timestamp).getDate();
let tomonth = new Date(timestamp).getMonth() + 1;
let toyear = new Date(timestamp).getFullYear();
let original_date = tomonth + "/" + todate + "/" + toyear;

我了解以下代码获取当前日期并对其进行格式化。如果我只是根据一次点击使用 original_date 填充 DOM,那么它将适用于今天的日期,但如果我明天检查它,那么它将获取明天的日期。我当前的问题是,我将如何根据用户的提交事件保存日期而不将其更新为当前时间。

想法:为按钮设置一个事件监听器会是可行的方法吗?比方说:

function addTransaction(e) {
  e.preventDefault();
  let saveDate = original_date;

  if (text.value.trim() === "" || amount.value.trim() === "") {
    alert("Please add a description and amount of the transaction");
  } else {
    const transaction = {
      id: generateID(),
      text: text.value,
      amount: +amount.value,
      date: saveDate
    };

    transactions.push(transaction);
    addTransactionDOM(transaction);
  }
}

function addTransactionDOM(transaction) {
  const sign = transaction.amount < 0 ? "-" : "+";

  //creating new element
  const item = document.createElement("li");

  //Add class based on value
  item.classList.add(transaction.amount < 0 ? "minus" : "plus");
  item.innerHTML = `
        ${transaction.date}
        ${transaction.text} 
        ${sign}${Math.abs(transaction.amount)} 
    `;

  list.appendChild(item);
}

form.addEventListener("submit", addTransaction);

像这样的东西会起作用吗?

标签: javascript

解决方案


您可以在浏览器 localStorage 中保存您以后需要检索的数据。

例如:

// Store data
localStorage.setItem('originalDateKey', original_date);

// Get data
var retrievedDate = localStorage.getItem('originalDateKey');

// Remove data
localStorage.removeItem('originalDateKey');

推荐阅读