2017-03-13 21 views
0

私は次のコードを持っている:moment.js日付/時刻の比較

var timeCutoff = moment('05:00PM', 'h:mmA').format("MM/DD/YYYY hh:mmA") 
var testTime = moment('11:00AM', 'h:mmA').format("MM/DD/YYYY hh:mmA"); 

if(testTime < timeCutoff){ 
    console.log(testTime + " before " + timeCutoff); 
} 
else{ 
    console.log(testTime + " after " + timeCutoff); 
} 

ここでの考え方は、今の時間は午後5時は、何かを前されるかどうです。 5PMの後に時刻がの場合は、別の操作を行います。

testTimeは(:00AM」、 'H:'11 MMA')に設定されていますし、予想外である "後" の状態を記録します。ここで

は、私が経験しています問題であり、
testTimeは('12:00PM '、' h:mmA ')に設定され、予期せぬ「after」条件が記録されます。
testTimeは('01:00PM '、' h:mmA ')に設定され、予期される前条件を記録します。
testTimeは('09:00PM '、' h:mmA ')に設定され、予期される「アフター」条件を記録します。

私は現在、任意の提案は大歓迎されているmoment.js 2.17.1

を使用しています。ありがとう!

+0

私はあなたが 'isBefore'を探していると思う:(testTime.isBefore(timeCutoff))場合は使用https://momentjs.com/docs/#/query/is-before/ –

答えて

2

isBefore()メソッドを使用する必要があります。

https://momentjs.com/docs/#/query/is-before/

var timeCutoff = moment('05:00PM', 'h:mmA'); 
var testTime = moment('11:00AM', 'h:mmA'); 

if(testTime.isBefore(timeCutoff)) { 
    console.log(testTime.format("MM/DD/YYYY hh:mmA") + " before " + timeCutoff.format("MM/DD/YYYY hh:mmA")); 
} 
else 
{ 
    console.log(testTime.format("MM/DD/YYYY hh:mmA") + " after " + timeCutoff.format("MM/DD/YYYY hh:mmA")); 
} 
+0

結果として、 "testTime.isBefore is not a function"がコンソールに記録されます。 – gbeaven

+1

'testTime'変数を宣言するときに' .format() 'を呼びますか?もしそうなら、 'testTime'は' moment'インスタンスではなく 'string'でしょう。私の例を見てください。 – jessegavin

+0

それは.format()が厳密にプレゼンテーションのようですか? – gbeaven

関連する問題