2016-06-13 17 views
5

私は昼/時間を比較しようとしています。月曜日の09:00:00に現在の時刻が表示され、その週を過ぎているかどうかを確認できます。例えばそれは月曜日に今5時00分00秒であるならば、それは、しかし、それは私には、以下の同様の質問が見つかりましたが、時間をフォーマットした後に問題を解決していないようでした偽毎回2つの日付をmomentJSと比較する

var dayTime = Moment("Wednesday 17:00:00", "dddd HH:mm:ss"); 
var now = Moment(Moment.now(), "dddd HH:mm:ss"); 
console.log(Moment.utc(dayTime).isBefore(now)); //returns false all the time 

を返してtrueを返す必要があります。

Comparing two times with Moment JS

私は、このようなことが期待される結果を返す「水曜日夜5時00分00秒」などの文字列でmoment.now()を交換した場合。

これが正しく動作するためには、moment.now()に何をする必要がありますか?

+0

私は一瞬'期待していない(moment.now()、 "HH:MM:SSをDDDD") 'moment.now()'はエポック時間表現を返し、あなたは完全に異なるフォーマット文字列を渡しています。 'moment(moment.now())'を試してください – Hamms

+1

moment.nowはまったく使用しないでください。これは、公開APIの一部ではない拡張ポイントです。現在の時刻を取得するにはちょうど() –

答えて

2

修正するには、私は曜日と時間を分けて瞬時に設定しました。それから今比較した。例えばあなたが欲しいモーメントを生成するために `;

moment().set({"Day": "Friday", "Hour": "17"}).isBefore(moment()) 
6

Moment.nowは拡張ポイントとして使用できますが、実際は公開APIではありません。現在の時刻を取得するにはmoment()に電話してください。すべての瞬間呼び出しは小文字のmomentを使用することに注意してください。あなたの日付と時刻が現在時刻よりも前である場合

参照するには、あなただけ呼び出します。

moment('01/01/2016', 'MM/DD/YYYY').isBefore(moment()) 

あなたがあなた自身で問題の日付と形式を置き換えます。

曜日と時間のみを含む日付形式があります。モーメントはこれを解析しますが、その動作が期待どおりではない可能性があることに注意してください。私はあなたの日付を解析すると、2015年12月30日水曜日に取得します。正確には、この土地は現地によって異なります。いずれにせよ、私はそれがあなたが望むものであるとは思わない。可能であれば、私は年、月、日になるでしょう。

今週の水曜日に瞬間を設定する場合は、.day()を使用して瞬時を設定してください。例えば:私は私の質問に投稿されたコードは、日/時間を変更しましたが、それは過去に常にあったことを意味し2015年までの年を設定して、興味がある人のため

moment().day(3).format() 
"2016-06-15T20:19:55-05:00" 
+0

これをありがとうが、それはかなり私の問題に答えることはありません。私は日/時間(年なし)を持っていて、その日の前後で偽に戻っているようです。時間は常に過去1年間与えられています - これを乗り越える方法はありますか? – Geraint

関連する問題