我有一个用 vanilla JS 编写的测验程序。它应该记录完成它所需的时间。
我想要实现的是用户通过两个变量(字符串)相减来回答问题需要多长时间。如果可能的话。
当用户说出他的名字并按下“开始测验”按钮时,当前时间将记录在本地存储中,如下所示:
var storeName;
var d = new Date();
var h = getHours();
var m = getMinutes();
var s = getSeconds();
var startTime = h + ":" + m + ":" + s;
var endTime = h + ":" + m + ":" + s;
var result;
var storage = {
storeName: storeName,
startTime: startTime,
endTime: null,
result: result
};
棘手的部分是我不知道如何从 EndTime 中减去 startTime 以获得回答问题所需的时间。这个测验几分钟就结束了,所以用一小时是多余的。
当用户点击最后一个问题的“提交”答案时,我希望将 LS 中记录的时间作为 endTime。
希望我没有表达不清楚,非常感谢大家抽出宝贵的时间。谢谢。
最佳答案
不将字符串存储为日期,而是直接存储以毫秒为单位的时间。然后您可以将开始时间与结束时间相减来计算出时间差。
var startTime = Date.now();
var storage = {
storeName: storeName,
startTime: startTime,
endTime: null,
result: result
};
稍后您可以使用 Date.now()
计算结束时间,并从开始时间中减去该结束时间以获得时差。
storage.endTime = Date.now();
//difference
var diff = storage.endTime - storage.startTime;
关于javascript - 减去本地存储中设置的两个值之间的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35736631/