javascript - 如何根据用户的 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);
像这样的东西会起作用吗?
解决方案
您可以在浏览器 localStorage 中保存您以后需要检索的数据。
例如:
// Store data
localStorage.setItem('originalDateKey', original_date);
// Get data
var retrievedDate = localStorage.getItem('originalDateKey');
// Remove data
localStorage.removeItem('originalDateKey');
推荐阅读
- neo4j - 如何在 Neo4j 中为权力的游戏数据集编写 ShortestPath 密码
- swift - 带有可选的 Swift 显式变量声明
- c++ - 正在构建的对象的构造函数参数访问成员字段
- c# - Unity不播放完整动画,只播放片段
- swift - 将 Apple DocC 作为 Apple 帮助手册文件运行
- javascript - 读取目录中的文件夹数(WEB)
- xamarin - Xamarin iOS:源文件不是有效的 UTF-8
- python - 垂直堆叠二维数组
- oracle - 字符串到时间戳转换plsql
- spring-boot - 尝试启动从分层战争创建的 docker 映像时出现 ClassNotFoundException