2017-03-16 66 views
0

我有2个日期选择器(fromto),我需要获取它们之间的持续时间,并以变量值(例如60分钟)四舍五入。Moment.js - 一轮持续时间

我解决了它,但也许有人知道更短/更好的解决方案?

var duration = moment.duration(to - from), 
roundedDuration = moment.duration(
    moment.utc(0) 
    .add(duration) 
    .ceil(ROUNDINGVALUE, ROUNDINGUNIT) - moment.utc(0) 
); 

我的代码执行以下操作:

  • 获取两个时间之间的时间
  • 添加时间为UTC时间0
  • 一轮日期到我想要的值(60分=>充分小时)
  • 获取通过时间和新UTC时间之间的时间0

是否有另一种解决方案来完成瞬间时间?

+0

'to'和'from'是什么? – VincenzoC

回答

0

在这里,我假设你已经从/到目前为止的时间日期对象与你寻找时间持续时间。

var from = moment(), 
    to = moment().add(2, 'hours'); // adding 2 hours here just for example sake 

moment.duration(to.diff(from).asMinutes(); // 120  
moment.duration(to.diff(from).asHours() // 2, if you want in hours 
+0

我不想要得到唯一的差异持续时间,我想圆(ceil)该持续时间到一个固定的其他持续时间,例如:2日期之间的差异持续时间是2 houres(像你的代码),但我想四舍五入至5你的步骤。 – wendt88

+0

轮到什么? 2个小时会轮到5个小时? – MGA

+0

在我的情况下,我不得不跑到1小时(这个值是可变的和片刻持续时间)。所以我怎么能像下面这样的数值:2:37 - > 3:00或1:01 - > 2:00 – wendt88