javascript - 减去本地存储中设置的两个值之间的时间

标签 javascript storage

我有一个用 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/

相关文章:

javascript - 如何加载动态变化的css文件

javascript - Express JS 通过控制台日志查看

javascript - 为什么以 ES6 方式定义 React 组件构造函数行不通?

javascript - 文本区域的内容未传递

postgresql - AWS PostgreSQL RDS : more than 10GB increase in Freeable Storage Space without any data removed

javascript - JS中对象的频率排序数组,如果频率匹配则根据对象属性排序

c++ - 大端和小端的概念

algorithm - 有效地存储素数列表

IOS大文件安全存储

java - 使用 Java 在 MySQL 中存储 HTML