2016-11-16 279 views
0

在此先感謝...我剛剛使用Moment,並且在下面的代碼中不確定爲什麼檢查isBetween是真實的。我看到日期部分是在給定的日期之間,但時間不是。不知道我是否正確使用該命令。Moment.js檢查日期時間是否在一組日期和時間之間

var beginningTime = moment('2016-11-25 3:45 am', 'YYYY-MM-DD h:mma'); 
var endTime1 = moment('2016-11-22 9:00 am', 'YYYY-MM-DD h:mma'); 
var endTime2 = moment('2016-11-30 1:00 pm', 'YYYY-MM-DD h:mma'); 
console.log("Beg Time = "+beginningTime.toString()); 
console.log("End Time1 = " +endTime1.toString()); 
console.log("End Time2 = "+endTime2.toString()); 
console.log(beginningTime.isBetween(endTime1,endTime2)); 

VM5431:4 Beg Time = Fri Nov 25 2016 03:45:00 GMT-0500 
VM5431:5 End Time1 = Tue Nov 22 2016 09:00:00 GMT-0500 
VM5431:6 End Time2 = Wed Nov 30 2016 13:00:00 GMT-0500 
VM5431:7 true 
+0

你的代碼是罰款和'isBetween'給你正確的答案,你有什麼問題? – VincenzoC

+0

我在想,因爲時間的原因,在這之間應該返回假。上午3:45不在上午9點到下午1點之間 – Rich

回答

2

由於文檔說,isBetween

檢查了一下是其他兩個時刻之間,可選地看着單位比例(分鐘,小時,天,等)。本場比賽是獨家戶頭

比較採用完整的對象(包括日期和時間信息),以便爲您的示例中的結果是正確的(2016-11-25 3:45 am2016-11-22 9:00 am2016-11-30 1:00 pm之間)。

如果你只比較時間,你的時刻對象應該有相同的日期值(日,月,年)。一種從你的瞬間對象(beginningTime,endTime1,endTime2)開始實現的方法是使用moment({unit: value, ...})構造函數。只設置hourminute屬性,它將爲當天創建一個矩形對象。

hour()minute()得到給定時刻的小時和分鐘。

這裏工作的例子:

var beginningTime = moment('2016-11-25 3:45 am', 'YYYY-MM-DD h:mm a'); 
 
var endTime1 = moment('2016-11-22 9:00 am', 'YYYY-MM-DD h:mm a'); 
 
var endTime2 = moment('2016-11-30 1:00 pm', 'YYYY-MM-DD h:mm a'); 
 
console.log("Beg Time = "+beginningTime.toString()); 
 
console.log("End Time1 = " +endTime1.toString()); 
 
console.log("End Time2 = "+endTime2.toString()); 
 
console.log(beginningTime.isBetween(endTime1,endTime2)); 
 

 
// Create a moment object considering only hour and minute 
 
function getMomentTime(m){ 
 
    return moment({hour: m.hour(), minute: m.minute()}); 
 
}; 
 

 
var t1 = getMomentTime(endTime1); 
 
var t2 = getMomentTime(endTime2); 
 
var begin = getMomentTime(beginningTime); 
 

 
console.log("Beg Time = "+begin.toString()); 
 
console.log("End Time1 = " +t1.toString()); 
 
console.log("End Time2 = "+t2.toString()); 
 

 
console.log(begin.isBetween(t1, t2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.16.0/moment.min.js"></script>

相關問題