2016-12-21 3 views
0

Moment.jsを使用してブラウザのネイティブ日付オブジェクトの時刻を消去する最良の方法は、ブラウザの現在のタイムゾーンで今日の深夜です。Moment.jsを使用して時刻を消去する最善の方法は何ですか?

+1

多分['startOf( 'day')'](http://momentjs.com/docs/#/manipulating/start-of/)はあなたが探しているものです。 – VincenzoC

+0

@VincenzoC - コメントではなく、回答を回答してください。 –

+0

セバスチャン(Sebastien) - すべての現地日が深夜を抱えているわけではないことを覚えておいてください。 00:00にDST「スプリングフォワード」のトランジションがある場合、その日は01:00に開始します。これはブラジルなど世界各地で発生します。 'startOf( 'day')'はそれを反映します。 –

答えて

1

次のように尋ねたものに最も近いものがある:これはあなたがしたいだけのものであれば

var d = new Date();    // your browser native date object 
var m = moment(d).startOf('day'); // move to the start of the day in the local time zone 
d = m.toDate();     // convert back to a native date object 

しかし、あなたは瞬間を必要としません。ちょうどん:

d = d.setHours(0, 0, 0, 0); 

また、必ずしもすべてのローカル日は真夜中を持っていることに注意してください。 00:00にDST「スプリングフォワード」のトランジションがある場合、その日は01:00に開始します。これはブラジルなど世界各地で発生します。この場合、モーメントのstartOf('day')関数は結果が1:00であることを保証しますが、setHoursのアプローチは1:00に設定されるか、ブラウザの実装に応じて前日に23:00に設定されます。

関連する問題