12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- (function($) {
- $.fn.date = async function(options) {
- };
- $.fn.date.days_left_in_range = function (n, d) {
- d = d || new Date();
- var qEnd = new Date(d);
- qEnd.setMonth(qEnd.getMonth() + n - qEnd.getMonth() % n, 0);
- return qEnd;
- }
- $.fn.date.range_calculator = function (n, d = new Date(), last = false) {
- const firDay = $.fn.date.days_left_in_range(n, d)
- let lasDay
- firDay.setMonth(firDay.getMonth() - (n - 1))
- firDay.setDate(1)
- if (last) {
- firDay.setMonth(firDay.getMonth() - n)
- lasDay = $.fn.date.days_left_in_range(n, firDay)
- } else {
- lasDay = $.fn.date.days_left_in_range(n, d)
- }
- return [firDay, lasDay]
- }
- $.fn.date.rangeVendingMachine = function (date_range, current_date = moment(new Date()).format('YYYY-MM-DD'), mode = 0) {
- let firDay = '1990-01-01', lasDay = '3000-12-31';
- let currDay = ''
- switch (date_range) {
- case 'day':
- currDay = new Date(current_date)
- currDay.setDate(currDay.getDate() + mode)
- firDay = currDay
- lasDay = currDay
- firDay.setDate(firDay.getDate())
- lasDay.setDate(lasDay.getDate())
- break;
- case 'week':
- currDay = new Date(current_date)
- currDay.setDate( currDay.getDate() + (7 * mode) )
- firDay = moment(currDay).startOf('isoWeek').format('YYYY-MM-DD')
- lasDay = moment(firDay).day(+7)
- break;
- case 'month':
- currDay = new Date(current_date);
- currDay.setMonth( currDay.getMonth() + mode );
- [firDay, lasDay] = $.fn.date.range_calculator(1, currDay)
- break;
- case 'quarterly':
- currDay = new Date(current_date);
- currDay.setMonth( currDay.getMonth() + (3 * mode) );
- [firDay, lasDay] = $.fn.date.range_calculator(3, currDay)
- break;
- case 'semiannual':
- currDay = new Date(current_date);
- currDay.setMonth( currDay.getMonth() + (6 * mode) );
- [firDay, lasDay] = $.fn.date.range_calculator(6, currDay)
- break;
- case 'year':
- currDay = new Date(current_date);
- currDay.setMonth( currDay.getMonth() + (12 * mode) );
- [firDay, lasDay] = $.fn.date.range_calculator(12, currDay)
- break;
- default:
- break;
- }
- return [firDay, lasDay, currDay]
- }
- }(jQuery));
|