web-dev-qa-db-ja.com

Moment.jsを使用して、今週の特定の日付を見つける

Moment.jsを使用して現在の週の特定の日付を見つける


JavaScriptで日付を操作する方法はたくさんあります。私は長くて、いコードなしでそうする最も簡単で簡単な方法を探していたので、誰かが私に Moment.js を見せてくれました。

このライブラリを使用して、現在の日付を使用して、現在の週の特定の日の日付を検出します。これまでの私の試みには、現在の日番号(0〜6日)の差を取り、その日と月曜日(1日目)の間の日数をチェックすることが含まれます。

これが私のフィドルです

ここに私のコードがあります:

var now = moment();

var day = now.day();

var week = [['sunday',0],['monday',1],['tuesday',2],['wednesday',3],['thursday',4],['friday',5],['saturday',6]];

var monday = moment().day(-(week[1][1] - day));//today minus the difference between monday and today

$("#console").text(monday);

//I need to know the date of the current week's monday
//I need to know the date of the current week's friday

これどうやってするの?私の方法は、これを行うためのひどい方法かもしれませんし、やや近いかもしれません。ただし、すべてのコードがそうであるように、ソリューションはきちんとしていて、小さく、動的で、シンプルであることを望みます。

私が見たすべての状況でnativeい、厄介なコードを生成するネイティブのJS日付機能を使用したくないです。

28
user2700923

今週の日曜日

moment().startOf('week')

今週の月曜日

moment().startOf('isoweek')

今週の土曜日

moment().endOf('week')

現在の日と日曜日の差

moment().diff(moment().startOf('week'),'days')

今週の水曜日

moment().startOf('week').add('days', 3)
65
wayne

文字列だけを使用することはもはや不可能です(例: 'isoweek')。次のように使用する必要があります。

import * as moment from 'moment';
import { unitOfTime } from 'moment';

moment().startOf('isoweek' as unitOfTime.StartOf);
1
IngoB

パーティーに少し遅れるかもしれませんが、 documentation のように、これを行う適切な方法があります。

_moment().day(1); // Monday in the current week
_

また、あなたのロケールで週が月曜日から始まり、ローカルに対応した結果を得たい場合、moment().weekday(0)を使用できます。 ドキュメントはこちらmoment().weekday(dayNumber)メソッドの場合。

0