Skip to content

Instantly share code, notes, and snippets.

@justinramel
Created December 30, 2015 16:57
Show Gist options
  • Save justinramel/865d085f737768d26a8a to your computer and use it in GitHub Desktop.
Save justinramel/865d085f737768d26a8a to your computer and use it in GitHub Desktop.
import moment from 'moment';
export class Dates {
createDate(date) {
let now = date ? new Date(date) : new Date();
now.setHours(0,0,0,0);
return now;
}
startAndEndOfWeek(date) {
let now = this.createDate(date);
let monday = moment(now).startOf('isoWeek').toDate();
let sunday = moment(now).endOf('isoWeek').toDate();
return [monday, sunday];
}
startAndEndOfMonth(date) {
let now = this.createDate(date);
let start = moment(now).startOf('month').toDate();
let last = moment(now).endOf('month').toDate();
return [start, last];
}
startAndEndOfYear(date) {
let now = this.createDate(date);
let start = moment(now).startOf('year').toDate();
let last = moment(now).endOf('year').toDate();
return [start, last];
}
addDay(date, days) {
let now = this.createDate(date);
return moment(now).add(days, 'day').toDate();
}
numberOfDaysInRange(range) {
let start = moment(range[0]);
let end = moment(range[1]);
return end.diff(start, 'days') + 1;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment