2017-09-14 64 views
0

我試圖用瞬間,以找出是否一個日期是其間使用矩範圍插件2個日期: https://github.com/rotaready/moment-range#containsMomentjs範圍返回false

出於某種原因,我下面的代碼總是拋出假。下面是輸出的一個示例:

START:00:00:00 2015年1月1日END:2017年8月1日00:00:00 CLOSED:2017年6月8日17時59 : 56決定:假

你可以清楚地看到這裏的封閉日期在開始和結束日期之間,但據我所知它不

這裏是我的代碼:

let end = moment('2017-08-01 00:00:00').format('YYYY-MM-DD HH:mm:ss') 
let start = moment('2015-01-01 00:00:00').format('YYYY-MM-DD HH:mm:ss') 
let closedDate = moment('2017-06-08 17:59:56').format('YYYY-MM-DD HH:mm:ss') 
let range = moment.range(start, end) 

console.log(`START:`,start,'END:',end,'CLOSED:',closedDate,'DECISION:',range.contains(closedDate)); 
+0

你爲什麼不使用[isBetween(https://momentjs.com/docs/#/query/is-between/)方法?我知道它的純粹的時刻,但它可以工作 – LakiGeri

+0

哇,好吧,我看完他們的文檔時完全錯過了這種方法。謝謝! – K20GH

+0

歡迎您! – LakiGeri

回答

1

我設法解決這個問題使用功能中,也改變了我如何格式化一刻對象

let end = moment('2017-08-01 00:00:00', 'YYYY-MM-DD HH:mm:ss') 
let start = moment('2015-01-01 00:00:00', 'YYYY-MM-DD HH:mm:ss') 
let closedDate = moment('2017-06-08 17:59:56','YYYY-MM-DD HH:mm:ss') 
let range = moment.range(start, end) 
console.log(`START:`,start,'END:',end,'CLOSED:',closedDate,'DECISION:',closedDate.within(range)); 
+0

moment.format()返回字符串,並且包含期望js Date,因此range.contains(closedDate.toDate())將適用於這些新聲明。 –