Skip to content

Instantly share code, notes, and snippets.

@cam-gists
Created June 4, 2012 21:40
Show Gist options
  • Save cam-gists/2870989 to your computer and use it in GitHub Desktop.
Save cam-gists/2870989 to your computer and use it in GitHub Desktop.
JavaScript: Date Calculation + Date Parser
/************************************************************************
Calculate Number of Days in Date Range
************************************************************************/
function days_between(date1, date2) {
var d1 = parseDate(date1.replace(/\-/g,'.'));
var d2 = parseDate(date2.replace(/\-/g,'.'));
// The number of milliseconds in one day
var ONE_DAY = 1000 * 60 * 60 * 24;
// Calculate the difference in milliseconds
var difference_ms = Math.abs(d2 - d1);
// Convert back to days and return
return Math.round(difference_ms/ONE_DAY) + 1;
}
// Date Prser for Safari
function parseDate(input, format) {
format = format || 'yyyy-mm-dd'; // default format
var parts = input.match(/(\d+)/g),
i = 0, fmt = {};
// extract date-part indexes from the format
format.replace(/(yyyy|dd|mm)/g, function(part) { fmt[part] = i++; });
return new Date(parts[fmt['yyyy']], parts[fmt['mm']]-1, parts[fmt['dd']]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment