javascript - 在 Javascript 中处理时间跨度

标签 javascript date datetime timespan datejs

已经使用 Date.js,但如果需要也可以使用其他库。

不确定处理时间增量的最佳方法是什么。具体来说,我想显示从现在到过去的日期时间之间耗时。

所以我需要做这样的事情:

var elapsed_time = new Date() - pastDate;
pastDate.toString('days-hours-minutes-seconds');

它主要使用 Date.js 工作,但问题是现在我正在使用 Date 对象而不是时间跨度,所以应该是 23 小时的时间跨度,而不是日期第一次之后的 23 小时:

var result = (new Date()) - past_date;
"result" is the number (probably milliseconds): 15452732
var result = (new Date() - past_date
"result" is a date from 1969: Wed Dec 31 1969 23:17:32

我需要的是:

0 days 23 hours 17 minutes and 32 seconds

有什么想法吗?

最佳答案

听起来你需要moment.js

例如

moment().subtract('days', 6).calendar();

=> 上周日晚上 8:23

moment().startOf('hour').fromNow();

=> 26 分钟前

编辑:

纯JS日期差异计算:

var date1 = new Date("7/Nov/2012 20:30:00");
var date2 = new Date("20/Nov/2012 19:15:00");

var diff = date2.getTime() - date1.getTime();

var days = Math.floor(diff / (1000 * 60 * 60 * 24));
diff -=  days * (1000 * 60 * 60 * 24);

var hours = Math.floor(diff / (1000 * 60 * 60));
diff -= hours * (1000 * 60 * 60);

var mins = Math.floor(diff / (1000 * 60));
diff -= mins * (1000 * 60);

var seconds = Math.floor(diff / (1000));
diff -= seconds * (1000);

document.write(days + " days, " + hours + " hours, " + mins + " minutes, " + seconds + " seconds");

关于javascript - 在 Javascript 中处理时间跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297625/

相关文章:

javascript - 为什么此代码可以在单独的文件上运行但不能内联

在不使用 this 关键字的情况下在上下文中进行 javascript eval

Java:如何正确解析字符串到日期?

python - 将日期插入 DataFrame 的行中

c# - 当 null 是数据库值时,如何在 get/set 方法中使用 datetime minvalue

javascript - 如何从外部 sagas.js 调用 saga?

javascript - 当 id 匹配时,将表列值附加到文本

java - new Date(long) 给出不同的结果

MYSQL 今天之前的日期

datetime - 夏令时和时区最佳实践