Skip to content

Instantly share code, notes, and snippets.

@furf
Created April 7, 2009 12:34
Show Gist options
  • Save furf/91211 to your computer and use it in GitHub Desktop.
Save furf/91211 to your computer and use it in GitHub Desktop.
Date boundary functions
/* Useful date functions if you're building a calendar */
var getStartOfCurrentDay = function(date) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
};
var getStartOfNextDay = function(date) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
};
var getEndOfPreviousDay = function(date) {
return new Date(getStartOfCurrentDay(date).getTime() - 1);
};
var getEndOfCurrentDay = function(date) {
return getEndOfPreviousDay(getStartOfNextDay(date));
};
var getStartOfCurrentWeek = function(date, firstWeekday) {
firstWeekday = firstWeekday || 0;
var offset = ((7 + date.getDay() - firstWeekday) % 7) * 86400000;
return getStartOfCurrentDay(new Date(date.getTime() - offset));
};
var getStartOfNextWeek = function(date) {
return new Date(getStartOfCurrentWeek(date).getTime() + 604800000);
};
var getEndOfPreviousWeek = function(date) {
return new Date(getStartOfCurrentWeek(date).getTime() - 1);
};
var getEndOfCurrentWeek = function(date) {
return getEndOfPreviousWeek(getStartOfNextWeek(date));
};
var getStartOfCurrentMonth = function(date) {
return new Date(date.getFullYear(), date.getMonth(), 1);
};
var getStartOfNextMonth = function(date) {
return new Date(date.getFullYear(), date.getMonth() + 1, 1);
};
var getEndOfPreviousMonth = function(date) {
return new Date(getStartOfCurrentMonth(date).getTime() - 1);
};
var getEndOfCurrentMonth = function(date) {
return getEndOfPreviousMonth(getStartOfNextMonth(date));
};
var getStartOfCurrentYear = function(date) {
return new Date(date.getFullYear(), 0, 1);
};
var getStartOfNextYear = function(date) {
return new Date(date.getFullYear() + 1, 0, 1);
};
var getEndOfPreviousYear = function(date) {
return new Date(getStartOfCurrentYear(date).getTime() - 1);
};
var getEndOfCurrentYear = function(date) {
return getEndOfPreviousMonth(getStartOfNextYear(date));
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment