20

I am trying to pass random date values to moment and check if the date is this week, this month or this year but it seems there is no simple function to achive this without writing lots of function, but since I am a beginner I don't know.

The only thing that is working for me right now is getting the week like this

moment(somedate, "MM-DD-YYYY").week() // 44

and I can compare that with todays date week

moment(todaysDate, "MM-DD-YYYY").week() // 44

and check if the values are the same to determine if the date is withing this week

but my problem is that I have to the the same to month and year and it's a bit cumbersome and I want to try to fix issue by looking for any answeres.

1
  • if you just call moment() it will return the current date..you can then do your difference calculation Commented Nov 3, 2017 at 13:49

4 Answers 4

30

You can use queries (check docs)

moment(dateToCheck).isSame(new Date(), 'week'); //true if dates are in the same week
moment(dateToCheck).isSame(new Date(), 'month'); //true if dates are in the same month
moment(dateToCheck).isSame(new Date(), 'year'); //true if dates are in the same year
9

Use .isSame()

Check if a moment is the same as another moment.

moment().isSame(Moment|String|Number|Date|Array); moment().isSame(Moment|String|Number|Date|Array, String);

Supported units: year month week day hour minute second

moment('2010-10-20').isSame('2010-01-01', 'year');  // true
moment('2010-01-01').isSame('2011-01-01', 'month'); // false, different year
moment('2010-01-01').isSame('2010-02-01', 'day');   // false, different month
4

Try to use moment isSame() method to check the date is with the limit.

First you have to add the moment dependencies in your project.

npm install moment --save   # npm
yarn add moment             # Yarn
Install-Package Moment.js   # NuGet
spm install moment --save   # spm
meteor add momentjs:moment  # meteor
bower install moment --save # bower (deprecated)

Import it to your component

import moment from 'moment'

moment isSame method syntax,

moment().isSame(Moment|String|Number|Date|Array);
moment().isSame(Moment|String|Number|Date|Array, String);

Check if a moment is the same as another moment. The first argument will be parsed as a moment, if not already so.

moment(dateVal).isSame(new Date(), 'week'); //true if dates are in the same week
moment(dateVal).isSame(new Date(), 'month'); //true if dates are in the same month
moment(dateVal).isSame(new Date(), 'year'); //true if dates are in the same year

dateVal is the date that you are going to check with in the current week , month or year.

Eg: Assume that if you want to check '20-5-2021' is in the current week, month and year. You can check like this.

moment('20-5-2021').isSame(new Date(), 'week');
moment('20-5-2021').isSame(new Date(), 'month'); 
moment('20-5-2021').isSame(new Date(), 'year'); 
0

Not a complete answer but heres a quick way to determine if a date is in this week:

var current = moment().week()+""+moment().year();
var date    = moment(yourDate).week()+""+moment(yourDate).year();

if (current === date) {
   //YES
}
   

Not the answer you're looking for? Browse other questions tagged or ask your own question.