【问题标题】:How to find time difference between current date and another date [duplicate]如何查找当前日期和另一个日期之间的时差[重复]
【发布时间】:2019-09-22 00:53:11
【问题描述】:

我正在寻找一种方法来查找 2 个日期之间的时间差,仅使用 moment js 以秒为单位。 我想将当前日期与我从数据库中读取的日期进行比较。

例如:

//current time
var current_time= moment().format('YYYY-MM-DD HH:mm:ss');      
//date from sql query
var starting_date=moment(element.start_date).format('YYYY-MM-DD HH:mm:ss');
// print the dates as they are now
console.log(current_time);
console.log(starting_date);

结果:

2019-07-02 18:00:11
2019-05-03 15:59:29

我只想在几秒钟内找出这两个日期之间的差异。

我尝试使用我找到的这个例子来使它工作:

var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days')

但它不起作用......

    var current_time= moment().format('YYYY-MM-DD HH:mm:ss');      
    var starting_date=moment(element.start_date).format('YYYY-MM-DD HH:mm:ss');
      current_time.diff(starting_date, 'seconds');

它崩溃了

知道如何实现吗?

【问题讨论】:

  • .diff() 到底是怎么失效的?
  • “不起作用” - 你能详细说明一下吗?你得到一个空的控制台日志吗?你得到0的差异吗?什么都没发生吗?
  • 您的diff 示例导致1 day 这对于该代码是正确的,但是您没有展示如何尝试将其适应您的问题情况,几秒钟内它不起作用。您需要显示您的 minimal reproducible example 尝试使用diff
  • @Lewis 我试着说例如 current_time.diff(starting_date, 'seconds');结果是错误“current_time.diff 不是函数”
  • 这意味着 current_time 不是时刻对象。它是使用上面的代码创建的吗?

标签: javascript momentjs


【解决方案1】:

您可以使用a.unix() - b.unix()

a.diff(b) 将返回millisecond 中的差异,您可以 div 1000 获得第二个。

var a = moment('2019-07-02 18:00:11', 'YYYY-MM-DD HH:mm:ss');
var b = moment('2019-05-03 15:59:29', 'YYYY-MM-DD HH:mm:ss');
second = a.unix() - b.unix();  

console.log('diff with second:' + second);


secondbymin = a.diff(b);
console.log('diff with milisecond: ' + secondbymin);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script>

【讨论】:

  • thnks 但我要比较的日期不是示例中的 a 和 b 格式。如果您对值尝试相同的值 var current_time= moment().format('YYYY-MM-DD HH:mm:ss');和 var starting_date=moment(element.start_date).format('YYYY-MM-DD HH:mm:ss');它不起作用
  • 我更新了你的格式日期的答案
  • 如果想用diff方法秒,可以div/1000
  • @NikosKalantas 你的问题解决了吗?
  • 是的,经过一些尝试,它以这种方式工作: var starting_date=moment(element.start_date).format('YYYY-MM-DD HH:mm:ss');开始日期 = 时刻(开始日期);当前时间=时刻(当前时间); (starting_date.diff(current_time, 'seconds')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
  • 2011-12-10
  • 1970-01-01
  • 2011-09-29
  • 1970-01-01
  • 2014-11-22
相关资源
最近更新 更多