Created
December 21, 2018 14:15
-
-
Save BigRaj/843ec68656ea2418c7f9945c979a3e7e to your computer and use it in GitHub Desktop.
Adds additional check functionalitiy to Date Object
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
/* 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