他のMomentJSの質問と回答を見て、私はまだという2つの異なる時刻をと単純に比較するのに慣れていません。TIMEの値を比較したいだけです。MomentJS
私は日/日を考慮する必要はありません。
私の使用例は次のとおりです。 設定ファイルからスケジュール(開始時刻と終了時刻)を読んでいます。これは、Node.jsの
にを使用して行われたstartTime = 18:30
終わりの時= 3:30 AM
var currentTime= moment(); // e.g. 11:00 pm
var starttime = moment('06:30 pm', "HH:mm a");
var endtime = moment('03:30 am', "HH:mm a");
amIBetween = currtime.isBetween(starttime , endtime);
console.log(amIBetween); // returns false
私のシナリオでは、技術的には2日間にわたるされると、それは偽だ、なぜ私は理解しています。
TRUEを返す瞬間が必要です。つまり、currtime isBeteen startとendtimeは、その範囲に収まります。
私は午前12時以降の時間をチェックし、チェックを行うために1日追加する必要がありますか? これを達成するための他の提案。私は機能を「含む」が似ている瞬間を見ました。
私はそれは難しい、それはこの複雑だと信じるように見つけるんだけど、多分それは次のとおりです。
\ -
ここではその問題がより明確になろうとした場合であっても、スパニング日に発生し、さらに明確化です:
var currentTime= moment('11:00p', "HH:mm a");
var startTime = moment('06:00p', "HH:mm a");
var endTime = moment('03:30a', "HH:mm a");
currentTime.toString(); //"Fri Oct 28 2016 23:00:00 GMT-0400"
startTime.toString(); // "Fri Oct 28 2016 18:00:00 GMT-0400"
endTime.toString(); // "Fri Oct 28 2016 03:30:00 GMT-0400"
currentTime.isBetween(startTime, endTime); // false
currentTime.isAfter(endTime) && currentTime.isBefore(startTime); //false
currentTime.isAfter(startTime) && currentTime.isBefore(endTime); //false
は一種の明白な日/日付が一瞬で考えられているので、彼らは偽のだろうと思われます。これが私が取り組もうとしていることです。
次は動作します:
endTime.add(1, "days");
currentTime.isBetween(startTime, endTime); // TRUE
これは、START TIMEは、その後ENDTIMEに1日追加12AM後など12AM & &前ENDTIMEだった場合、私がチェックする必要があるだろうと、しかし意味します。クルージュ?
ええと、それはcurrtimeでタイプミスでした。提案を感謝する – rfossella