2017-03-16 81 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