2013-10-30 46 views
0

我有日期2012年7月24日和時間23:59:59在單獨的變量。使用moment.js我試圖找到這個和當前日期之間的天數/小時/分鐘數。如何找到日期之間的時間?

這可以通過moment.js完成嗎?

回答

3

假設$date持有「07月24日」和$time舉辦的「23:59:59」 ......

moment($date + " " + $time, "MM/DD/YYYY HH:mm:ss").fromNow(); 

+運算符連接形成一個值,那一刻,可直接解析字符串。

參考:

+1

我喜歡這個答案。無論如何,請注意,也可以將持續時間設爲['moment.duration('23:59:59')'](http://momentjs.com/docs/#/durations/creating/)(只需解析日期,並添加持續時間..) – user2864740

+0

var dateNum = 07/24/2012; var timeNum = 23:59:59; var timeDura = moment(dateNum +「」+ timeNum,「MM/DD/YYYY HH:mm:ss」)fromNow(); alert(timeDura); 這就是我正在做的,但它只給了我幾天,沒有時間和日子。 – Reyjay

+0

這裏的要點是你可以使用你所擁有的價值構造一個Moment可以使用的價值。然後你可以做你需要的。如果'fromNow()'不是它,也許你需要['duration()'](http://momentjs.com/docs/#/durations/subtract/),但是整個Moment.JS都是你的一旦你有一個時刻的對象。 – PaulProgrammer

1

moment.js不提供 「直接」 的方式來執行此任務爲fromNow喜歡弄巧,喜歡使用humanize ;但是,(在the moment.js source爲靈感使用from),我們可以得出a little solution

var whence = moment("2040-11-28") 
var remaining = moment.duration(whence.diff(moment())) 

然後使用/格式化的持續時間(可悲的是,沒有duration.format()提供):

var r = remaining 
var str = Math.floor(r.asDays()) + "." + r.hours() + ":" + r.minutes() + ":" + r.seconds() 
alert(str) 

PaulProgrammer的答案提供了一個很好如何從兩個分離值中獲得最初的日期。或者(因爲Moment.js 2.1.0),日期時間可以通過以下方式獲得:

var whence = moment(yourDate, "MM/DD/YYYY").add(moment.duration(yourTimeOfDay)) 
相關問題