Skip to content

Instantly share code, notes, and snippets.

@BigRaj
Created December 21, 2018 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BigRaj/843ec68656ea2418c7f9945c979a3e7e to your computer and use it in GitHub Desktop.
Save BigRaj/843ec68656ea2418c7f9945c979a3e7e to your computer and use it in GitHub Desktop.
Adds additional check functionalitiy to Date Object
/* Adds isAfter, isBefore, and isBetween functions to the Date object
* isAfter(<Date Object>) OR isAfter('MM/DD/YYYY')
* isBefore(<Date Object>) OR isBefore('MM/DD/YYYY')
* isBetween(<Start Date Object>, <End Date Object>) OR isBetween('MM/DD/YYYY','MM/DD/YYYY')
*
* Assuming todays' date is 12/25/2018
* var date = new Date();
* date.isAfter('12/12/2018') returns true;
* date.isBefore('12/12/2018') returns false;
* date.isBetween('12/1/2018','12/31/2018') returns true;
*/
Date.prototype.isAfter = function(date){
var today = this;
switch (typeof date){
case 'object':
date = date;
break;
case 'string':
date = Date.parse(date);
break;
}
// check for bad date in case 'string':
if(date.toString() === 'NaN'){
console.error('Parameter must be properly formatted Dates:\neither Date() objects or text "MM/DD/YYYY"');
return;
}
if(today > date){
return true;
}
else{
return false;
}
}
Date.prototype.isBefore = function(date){
var today = this;
switch (typeof date){
case 'object':
date = date;
break;
case 'string':
date = Date.parse(date);
break;
}
// check for bad date in case 'string':
if(date.toString() === 'NaN'){
console.error('Parameter must be properly formatted Dates:\neither Date() objects or text "MM/DD/YYYY"');
return;
}
if(today < date){
return true;
}
else{
return false;
}
}
Date.prototype.isBetween = function(start, end){
var today = this;
var NaN = false;
switch(typeof start){
case 'object':
start = start;
break;
case 'string':
start = Date.parse(start);
break;
}
switch(typeof end){
case 'object':
end = end;
break;
case 'string':
end = Date.parse(end);
break;
}
// check for bad dates in case 'string':
if(start.toString() === 'NaN' || end.toString() === 'NaN'){
console.error('Parameters must be properly formatted Dates:\neither Date() objects or text "MM/DD/YYYY"');
return;
}
// check start/end logic
if(start > end){
console.error('Start date must be before End date');
return;
}
if(today >= start && today <= end && start < end){
return true;
}
else{
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment