Reputation: 5939
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.
Upvotes: 20
Views: 20330
Reputation: 51
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
}
Upvotes: 0
Reputation: 1
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');
Upvotes: 4
Reputation: 21881
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
Upvotes: 9
Reputation: 2321
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
Upvotes: 30