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日付機能を使用したくないです。
今週の日曜日
moment().startOf('week')
今週の月曜日
moment().startOf('isoweek')
今週の土曜日
moment().endOf('week')
現在の日と日曜日の差
moment().diff(moment().startOf('week'),'days')
今週の水曜日
moment().startOf('week').add('days', 3)
文字列だけを使用することはもはや不可能です(例: 'isoweek')。次のように使用する必要があります。
import * as moment from 'moment';
import { unitOfTime } from 'moment';
moment().startOf('isoweek' as unitOfTime.StartOf);
パーティーに少し遅れるかもしれませんが、 documentation のように、これを行う適切な方法があります。
_moment().day(1); // Monday in the current week
_
また、あなたのロケールで週が月曜日から始まり、ローカルに対応した結果を得たい場合、moment().weekday(0)
を使用できます。 ドキュメントはこちらmoment().weekday(dayNumber)
メソッドの場合。