mutants-appfx
Version:
appfx module
306 lines (292 loc) • 11.5 kB
JavaScript
'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