UNPKG

mutants-appfx

Version:

appfx module

306 lines (292 loc) 11.5 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var DateUtil = function () { function DateUtil() { (0, _classCallCheck3.default)(this, DateUtil); } (0, _createClass3.default)(DateUtil, null, [{ key: 'getValue', value: function getValue(key) { switch (key) { case 'logindate': return this.getDateTime('1').begin; case 'today1': return this.getDateTime('1').begin; case 'today2': return this.getDateTime('1').end; case 'yesterday1': return this.getDateTime('2').begin; case 'yesterday2': return this.getDateTime('2').end; case 'thisweek1': return this.getDateTime('4').begin; case 'thisweek2': return this.getDateTime('4').end; case 'thismonth': case 'thismonth1': return this.getDateTime('7').begin; case 'thismonth2': return this.getDateTime('7').end; case 'premonth1': return this.getDateTime('8').begin; case 'premonth2': return this.getDateTime('8').end; case 'thisquarter1': return this.getDateTime('9').begin; case 'thisquarter2': return this.getDateTime('9').end; case 'thisyear1': return this.getDateTime('10').begin; case 'thisyear2': return this.getDateTime('10').end; case 'lastthreedays1': return this.getDateTime('3').begin; case 'lastthreedays2': return this.getDateTime('3').end; case 'lastsevendays1': return this.getDateTime('5').begin; case 'lastsevendays2': return this.getDateTime('5').end; case 'lastfourteendays1': return this.getDateTime('6').begin; case 'lastfourteendays2': return this.getDateTime('6').end; default: return key; } } }, { key: 'getDateTime', value: function getDateTime(count) { var now = this.today || new Date(); //当前日期 var nowDayOfWeek = now.getDay(); //今天本周的第几天 if (nowDayOfWeek == 0) { nowDayOfWeek = 7; } var nowDay = now.getDate(); //当前日 var nowMonth = now.getMonth(); //当前月 var nowYear = now.getYear(); //当前年 nowYear += nowYear < 2000 ? 1900 : 0; // var fromDate = this.today || new Date(); //当前日期 var toDate = this.today || new Date(); //当前日期 var qd = this.getQuarterStartMonth(); switch (count) { case '1': //今天 fromDate = this.getDate(0, 0); toDate = this.getDate(0, 1); break; case '2': //昨天 fromDate = this.getDate(-1, 0); toDate = this.getDate(-1, 1); break; case '3': //近三天 fromDate = this.getDate(-2, 0); toDate = this.getDate(0, 1); break; case '4': //本周 fromDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1); toDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek), 23, 59, 59); break; case '5': //近7天 fromDate = this.getDate(-6, 0); toDate = this.getDate(0, 1); break; case '6': //近14天 fromDate = this.getDate(-13, 0); toDate = this.getDate(0, 1); break; case '7': //本月 fromDate = new Date(nowYear, nowMonth, 1); toDate = new Date(nowYear, nowMonth + 1, 0, 23, 59, 59); break; case '8': //上月 fromDate = new Date(nowYear, nowMonth - 1, 1); toDate = new Date(nowYear, nowMonth, 0, 23, 59, 59); break; case '9': //本季度 fromDate = new Date(nowYear, qd, 1); toDate = new Date(nowYear, qd + 3, 0, 23, 59, 59); break; case '10': //本年 fromDate = new Date(nowYear, 0, 1); toDate = new Date(nowYear, 12, 0, 23, 59, 59); break; case '11': //自定义 fromDate = now; toDate = now; break; case '12': //上年 fromDate = new Date(nowYear - 1, 0, 1); toDate = new Date(nowYear - 1, 12, 0, 23, 59, 59); break; case '13': //上季度 fromDate = new Date(nowYear, qd - 3, 1); toDate = new Date(nowYear, qd, 0, 23, 59, 59); break; case '14': //上周 fromDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1 - 7); toDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek) - 7, 23, 59, 59); break; } var ret = { 'begin': fromDate, 'end': toDate }; return ret; } }, { key: 'getDateKey', value: function getDateKey(from, to) { if (!from || !to) { return ''; } var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); //今天本周的第几天 if (nowDayOfWeek == 0) { nowDayOfWeek = 7; } var nowDay = now.getDate(); //当前日 var nowMonth = now.getMonth(); //当前月 var nowYear = now.getYear(); //当前年 nowYear += nowYear < 2000 ? 1900 : 0; // var fromDate = (0, _moment2.default)(from).format('YYYY-MM-DD'); //当前日期 var toDate = (0, _moment2.default)(to).format('YYYY-MM-DD'); //当前日期 //今天 if (fromDate == (0, _moment2.default)(this.getDate(0, 0)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(this.getDate(0, 1)).format('YYYY-MM-DD')) { return 'today'; } //昨天 if (fromDate == (0, _moment2.default)(this.getDate(-1, 0)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(this.getDate(-1, 1)).format('YYYY-MM-DD')) { return 'yesterday'; } //近三天 if (fromDate == (0, _moment2.default)(this.getDate(-2, 0)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(this.getDate(0, 1)).format('YYYY-MM-DD')) { return 'lastthreedays'; } //本周 if (fromDate == (0, _moment2.default)(new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek), 23, 59, 59)).format('YYYY-MM-DD')) { return 'thisweek'; } //近7天 if (fromDate == (0, _moment2.default)(this.getDate(-6, 0)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(this.getDate(0, 1)).format('YYYY-MM-DD')) { return 'lastsevendays'; } //近14天 if (fromDate == (0, _moment2.default)(this.getDate(-13, 0)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(this.getDate(0, 1)).format('YYYY-MM-DD')) { return 'lastfourteendays'; } //本月 if (fromDate == (0, _moment2.default)(new Date(nowYear, nowMonth, 1)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(new Date(nowYear, nowMonth + 1, 0, 23, 59, 59)).format('YYYY-MM-DD')) { return 'thismonth'; } //上月 if (fromDate == (0, _moment2.default)(new Date(nowYear, nowMonth - 1, 1)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(new Date(nowYear, nowMonth, 0, 23, 59, 59)).format('YYYY-MM-DD')) { return 'premonth'; } //本季度 var qd = this.getQuarterStartMonth(); if (fromDate == (0, _moment2.default)(new Date(nowYear, qd, 1)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(new Date(nowYear, qd + 3, 0, 23, 59, 59)).format('YYYY-MM-DD')) { return 'thisquarter'; } //本年 if (fromDate == (0, _moment2.default)(new Date(nowYear, 0, 1)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(new Date(nowYear, 12, 0, 23, 59, 59)).format('YYYY-MM-DD')) { return 'thisyear'; } // 上年 if (fromDate == (0, _moment2.default)(new Date(nowYear - 1, 0, 1)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(new Date(nowYear - 1, 12, 0, 23, 59, 59)).format('YYYY-MM-DD')) { return 'preyear'; } //上季度 var qd2 = this.getQuarterStartMonth(); if (fromDate == (0, _moment2.default)(new Date(nowYear, qd2 - 3, 1)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(new Date(nowYear, qd2, 0, 23, 59, 59)).format('YYYY-MM-DD')) { return 'prequarter'; } //上周 if (fromDate == (0, _moment2.default)(new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1 - 7)).format('YYYY-MM-DD') && toDate == (0, _moment2.default)(new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek) - 7, 23, 59, 59)).format('YYYY-MM-DD')) { return 'preweek'; } //自定义 return ''; } }, { key: '_setToday', value: function _setToday(today) { if (this.today == today) { return; } this.today = today; var m = (0, _moment2.default)(today || new Date()); this.today = new Date(m.get('year'), m.get('month'), m.get('date'), m.get('hour'), m.get('minute'), m.get('second')); } }, { key: 'getDate', value: function getDate(dayCount, flag) { var dd = this.today ? new Date(this.today) : new Date(); dd.setDate(dd.getDate() + dayCount); //获取dayCount天后的日期 if (flag === 0) { dd.setHours(0, 0, 0); } else { dd.setHours(23, 59, 59); } return dd; } //获得本季度的开端月份 }, { key: 'getQuarterStartMonth', value: function getQuarterStartMonth() { var nowMonth = (this.today || new Date()).getMonth(); //当前月 var quarterStartMonth = 0; if (nowMonth < 3) { quarterStartMonth = 0; } if (2 < nowMonth && nowMonth < 6) { quarterStartMonth = 3; } if (5 < nowMonth && nowMonth < 9) { quarterStartMonth = 6; } if (nowMonth > 8) { quarterStartMonth = 9; } return quarterStartMonth; } }, { key: 'isDate', value: function isDate(date) { date = new Date(date); var dateStr = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(); var result = dateStr.match(/((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/); if (result === null) { return false; } return true; } }]); return DateUtil; }(); exports.default = DateUtil; //# sourceMappingURL=DateUtil.js.map