首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >两个时间戳之间的差异(以秒为单位

两个时间戳之间的差异(以秒为单位
EN

Stack Overflow用户
提问于 2019-02-28 21:57:36
回答 3查看 76关注 0票数 0

我正在使用jquery动态创建某些表行,我希望在该行中显示几秒钟之前创建的行,我尝试了下面的代码

代码语言:javascript
运行
复制
var currenttime = moment();
$(".tbody").append("<tr><td class='tdata' data-id='"+currenttime+"'>0 seconds</td></tr>");


setInterval(function(){ 
var latest = moment();
var oldtime = $(".tdata").data("id");
var newtime = oldtime-latest;
$(".tdata").html(newtime+ "secs");
}, 3000);

因此,基本上我是在创建行的同时存储当前时间,然后随机检查并显示总秒数(而不是分钟或小时),如果是5分钟,则应显示300。

我后来尝试了var = moment();,但它创建了对象我不能将它存储在data-attribute中,即使没有momentjs也可以完成,有什么想法,谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-28 22:02:24

这里不需要moment,只需要Date (getTime()方法)

代码语言:javascript
运行
复制
var currenttime = new Date().getTime(); // Count milliseconds since 1970
$(".tbody").append("<tr><td class='tdata' data-id='"+currenttime+"'>0 seconds</td></tr>");


setInterval(function(){ 
  var oldtime = parseInt($(".tdata").data("id")); // HTML store it as String, don't forget to transform it to int "14254782000" > 14254782000
  var seconds = parseInt((new Date().getTime() - oldtime) / 1000);
  $(".tdata").html(seconds+ " secs");
}, 1000);

这样,你存储的不是一个moment对象,而是一个秒数(int),而且它总是现在-过去(而不是过去-现在),因为现在比过去要高(我们想要一个正值)。

票数 1
EN

Stack Overflow用户

发布于 2019-02-28 22:21:19

我不知道该怎么解释这个例子:

代码语言:javascript
运行
复制
$("button").on("click", function(){
  $("tbody").append("<tr><td class='tdata'><span data-seconds-since=" + Date.now() + ">0</span> seconds</td></tr>");
});

// updates all places at once
setInterval(function(){ 
  var now = Date.now();
  $("[data-seconds-since]").text(function(){
    return ((now - this.dataset.secondsSince) / 1000).toFixed(1)
  });
}, 40);
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table><tbody></tbody></table>

<button type="button">Add Row</button>

票数 1
EN

Stack Overflow用户

发布于 2019-02-28 22:34:28

小小的改变

代码语言:javascript
运行
复制
var starts = Date.now();
//...
var diff = (Date.now() - starts) / 10000;

你也可以检查moment.duration,因为你已经在使用momentJS了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54927393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档