2016-07-01 4 views
0

私は開始日と終了日を特定の日にしようとしています。ここでmomentjs - strangeはstartOfとendOfで動作します

はコードです:

var newDay, newDayEnd, newDayStart; 

if (newDay === '') { 
    newDay = moment(); 
} 

newDay.subtract('day', 1); 

newDayStart = newDay.startOf('day');  
newDayEnd = newDay.endOf('day'); 

私はそれをデバッグしようとしている、と私はいけば谷とき値が正しいですが、できるだけ早くそれがnewDay.endOf('day')に達するとそれがすべての変数を設定していることに気づきました指定された日の終わり(23.59.59)

私は上記の機能をボタンクリックで使用しています。私がボタンをクリックするたびに、それは1日後に戻ります(newDay.subtract('day', 1))と私は新しい日(newDay変数)の開始と終了を得ることができる必要があります

何か助けがありますか? ここで何が間違っていますか?わかりません。あなたがそれらを変更する前にそれらをclone()する必要がありますので

おかげ

答えて

1

モーメントオブジェクトは、変更可能です。

あなたはendOfドキュメントから読み取ることができたよう:

は、時間の単位の終わりにそれを設定することで、元の瞬間を変異させます。

の作業例:

var newDay, newDayEnd, newDayStart; 
 
newDay = moment().subtract(1, 'day'); 
 

 
newDayStart = newDay.clone().startOf('day'); 
 
newDayEnd = newDay.clone().endOf('day'); 
 
console.log(newDayStart.format(), newDayEnd.format());
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>