Created
April 7, 2009 12:34
-
-
Save furf/91211 to your computer and use it in GitHub Desktop.
Date boundary functions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 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