Skip to content

Instantly share code, notes, and snippets.

@hazeim254
Last active January 3, 2016 04:52
Show Gist options
  • Save hazeim254/dd169c9c82ac7db62a07 to your computer and use it in GitHub Desktop.
Save hazeim254/dd169c9c82ac7db62a07 to your computer and use it in GitHub Desktop.
A simple way to calculate date ranges start and end suitable for date fields
var DateRange = {
today: function(){
var currentDay = new Date();
var date = currentDay.getFullYear() + '-' + this.addZero(parseInt(currentDay.getMonth() + 1)) + '-' + this.addZero(currentDay.getDate());
return {from: date, to: date};
},
yesterday: function() {
var dayBefore = new Date();
dayBefore.setDate(dayBefore.getDate() - 1);
var date = dayBefore.getFullYear() + '-' + this.addZero(parseInt(dayBefore.getMonth() + 1)) + '-' + this.addZero(dayBefore.getDate());
return {from: date, to: date};
},
currentWeek: function(){
var weekStart = new Date();
var diff = weekStart.getDay();
weekStart.setDate(weekStart.getDate() - diff);
var weekStartDate = weekStart.getFullYear() + '-' + this.addZero(parseInt(weekStart.getMonth() + 1)) + '-' + this.addZero(weekStart.getDate());
var currentDay = new Date();
var date = currentDay.getFullYear() + '-' + this.addZero(parseInt(currentDay.getMonth() + 1)) + '-' + this.addZero(currentDay.getDate());
return {from: weekStartDate, to: date};
},
lastWeek: function(){
var weekStart = new Date();
var diff = weekStart.getDay();
weekStart.setDate(weekStart.getDate() - diff - 7);
var weekStartDate = weekStart.getFullYear() + '-' + this.addZero(parseInt(weekStart.getMonth() + 1)) + '-' + this.addZero(weekStart.getDate());
var weekEnd = new Date();
weekEnd.setDate(weekEnd.getDate() - 3 - diff);
var weekEndDate = weekEnd.getFullYear() + '-' + this.addZero(parseInt(weekEnd.getMonth() + 1)) + '-' + this.addZero(weekEnd.getDate());
return {from: weekStartDate, to: weekEndDate};
},
lastMonth: function(){
var monthStart = new Date();
monthStart.setMonth(monthStart.getMonth() - 1);
var monthStartDate = monthStart.getFullYear() + '-' + this.addZero(parseInt(monthStart.getMonth() + 1)) + '-01';
var monthEnd = new Date();
monthEnd.setDate(0);
var monthEndDate = monthEnd.getFullYear() + '-' + this.addZero(parseInt(monthEnd.getMonth() + 1)) + '-' + this.addZero(monthEnd.getDate());
return {from: monthStartDate, to: monthEndDate}
},
currentMonth: function(){
var monthStart = new Date();
var monthStartDate = monthStart.getFullYear() + '-' + this.addZero(parseInt(monthStart.getMonth() + 1)) + '-01';
var currentDay = new Date();
var date = currentDay.getFullYear() + '-' + this.addZero(parseInt(currentDay.getMonth() + 1)) + '-' + this.addZero(currentDay.getDate());
return {from: monthStartDate, to: date};
},
addZero: function(i){
if (i < 10) {
return '0' + i;
}
return i;
}
};
module.exports = DateRangeCalculator;
// TODO: Add unit testing
// TODO: Create a package
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment