@jrj-front-end/tools
Version:
jrj前端工具包
177 lines (176 loc) • 8.23 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetDataReckon = exports.GetBeginAndEndDate = void 0;
var moment_1 = __importDefault(require("moment"));
/**
* 获取日期所在年份、月份、季度、星期的第一天和最后一天
* @param dimension 维度 ----- 年份year、月份month、季度quarter、星期week、天day
* @param showDetail 如果为true,返回的格式为YYYY-MM-DD HH:mm:ss,如果为false,返回的格式为YYYY-MM-DD,默认为false
* @param date 日期,默认为当前日期,格式为YYYY-MM-DD,如2023-01-01
*/
var GetBeginAndEndDate = function (dimension, showDetail, date) {
if (showDetail === void 0) { showDetail = false; }
if (date === void 0) { date = (0, moment_1.default)(new Date()).format("YYYY-MM-DD"); }
var formatStr = showDetail ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD";
var startTime = (0, moment_1.default)(date).startOf(dimension).format(formatStr);
var endTime = (0, moment_1.default)(date).endOf(dimension).format(formatStr);
return {
startTime: startTime,
endTime: endTime
};
};
exports.GetBeginAndEndDate = GetBeginAndEndDate;
/**
* 日期推算算法
*
* @param type 需要获取的时间范围
* @returns 返回的是 [年月日,年月日] // moment格式
*/
var GetDataReckon = function (type) {
console.log('type', type);
var myData = [], year = (0, moment_1.default)().year(), month = (0, moment_1.default)().month(), quarter = (0, moment_1.default)().quarter(), firstDay = 0, lastDay = 0;
// 时间获取思路一周:按照国外计算方法,获取上周一及本周日时间,即为上周时间
// moment().year() 获取当前年 返回值number
// moment().month() 获取月 返回值number 范围为 0-11
// 本日
if (type === '本日') {
var todayDay = (0, moment_1.default)(((0, moment_1.default)().unix()) * 1000).format('YYYY-MM-DD');
myData = [
(0, moment_1.default)(todayDay, 'YYYY-MM-DD'),
(0, moment_1.default)(todayDay, 'YYYY-MM-DD')
];
}
// 上日
if (type === '上日') {
var lastDay_1 = (0, moment_1.default)(((0, moment_1.default)().unix() - 24 * 60 * 60) * 1000).format('YYYY-MM-DD');
myData = [
(0, moment_1.default)(lastDay_1, 'YYYY-MM-DD'),
(0, moment_1.default)(lastDay_1, 'YYYY-MM-DD')
];
}
// 上周
else if (type === '上周') {
myData = [
(0, moment_1.default)((0, moment_1.default)().day(-6).format('YYYY-MM-DD'), 'YYYY-MM-DD'),
(0, moment_1.default)((0, moment_1.default)().day(0).format('YYYY-MM-DD'), 'YYYY-MM-DD')
];
}
// 上月
else if (type === '上月') {
// // console.log("firstDay, lastDay:", firstDay, lastDay);
// month = 2;
switch (month) {
case 0:
year -= 1;
month = 12;
firstDay = 1;
lastDay = 31;
myData = [
(0, moment_1.default)(year + "-" + month + "-0" + firstDay, 'YYYY-MM-DD'),
(0, moment_1.default)(year + "-" + month + "-" + lastDay, 'YYYY-MM-DD')
];
break;
case 11:
firstDay = 1;
lastDay = 30;
myData = [
(0, moment_1.default)(year + "-" + month + "-0" + firstDay, 'YYYY-MM-DD'),
(0, moment_1.default)(year + "-" + month + "-" + lastDay, 'YYYY-MM-DD')
];
break;
case 10:
firstDay = 1;
lastDay = (0, moment_1.default)(year + "-" + month, "YYYY-MM").daysInMonth(); //获取当前月份总天数
myData = [
(0, moment_1.default)(year + "-" + month + "-0" + firstDay, 'YYYY-MM-DD'),
(0, moment_1.default)(year + "-" + month + "-" + lastDay, 'YYYY-MM-DD')
];
break;
default:
firstDay = 1;
lastDay = (0, moment_1.default)(year + "-0" + month, "YYYY-MM").daysInMonth(); //获取当前月份总天数
myData = [
(0, moment_1.default)(year + "-0" + month + "-0" + firstDay, 'YYYY-MM-DD'),
(0, moment_1.default)(year + "-0" + month + "-" + lastDay, 'YYYY-MM-DD')
];
break;
}
}
// 上季度
else if (type === '上季度') {
switch (quarter) {
case 1:
year -= 1;
firstDay = 1;
lastDay = (0, moment_1.default)(year + "-12", "YYYY-MM").daysInMonth();
myData = [
(0, moment_1.default)(year + "-09-0" + firstDay, 'YYYY-MM-DD'),
(0, moment_1.default)(year + "-12-" + lastDay, 'YYYY-MM-DD')
];
break;
case 2:
firstDay = 1;
lastDay = (0, moment_1.default)(year + "-03", "YYYY-MM").daysInMonth();
myData = [
(0, moment_1.default)(year + "-01-0" + firstDay, 'YYYY-MM-DD'),
(0, moment_1.default)(year + "-03-" + lastDay, 'YYYY-MM-DD')
];
break;
case 3:
firstDay = 1;
lastDay = (0, moment_1.default)(year + "-06", "YYYY-MM").daysInMonth();
myData = [
(0, moment_1.default)(year + "-04-0" + firstDay, 'YYYY-MM-DD'),
(0, moment_1.default)(year + "-06-" + lastDay, 'YYYY-MM-DD')
];
break;
case 4:
firstDay = 1;
lastDay = (0, moment_1.default)(year + "-09", "YYYY-MM").daysInMonth();
myData = [
(0, moment_1.default)(year + "-07-0" + firstDay, 'YYYY-MM-DD'),
(0, moment_1.default)(year + "-09-" + lastDay, 'YYYY-MM-DD')
];
break;
}
}
else if (type === '上年') {
myData = [
(0, moment_1.default)((0, moment_1.default)().year() - 1 + "-01-01", 'YYYY-MM-DD'),
(0, moment_1.default)((0, moment_1.default)().year() - 1 + "-12-31", 'YYYY-MM-DD')
];
}
else if (type === '本日') {
var today = (0, moment_1.default)(((0, moment_1.default)().unix()) * 1000).format('YYYY-MM-DD');
var lastDay_2 = (0, moment_1.default)(((0, moment_1.default)().unix()) * 1000).format('YYYY-MM-DD');
myData = [
(0, moment_1.default)(today, 'YYYY-MM-DD'),
(0, moment_1.default)(lastDay_2, 'YYYY-MM-DD')
];
}
else if (type === '近一周') {
// // console.log('当天时间:', moment((moment().unix()) * 1000).format('YYYY-MM-DD'));
myData = [
(0, moment_1.default)((0, moment_1.default)(((0, moment_1.default)().unix() - 7 * 24 * 60 * 60) * 1000).format('YYYY-MM-DD'), 'YYYY-MM-DD'),
(0, moment_1.default)((0, moment_1.default)(((0, moment_1.default)().unix()) * 1000).format('YYYY-MM-DD'), 'YYYY-MM-DD'),
];
}
else if (type === '近一月') {
myData = [
(0, moment_1.default)((0, moment_1.default)(((0, moment_1.default)().unix() - 30 * 24 * 60 * 60) * 1000).format('YYYY-MM-DD'), 'YYYY-MM-DD'),
(0, moment_1.default)((0, moment_1.default)(((0, moment_1.default)().unix()) * 1000).format('YYYY-MM-DD'), 'YYYY-MM-DD'),
];
}
else if (type === '近一年') {
myData = [
(0, moment_1.default)((0, moment_1.default)(((0, moment_1.default)().unix() - 365 * 24 * 60 * 60) * 1000).format('YYYY-MM-DD'), 'YYYY-MM-DD'),
(0, moment_1.default)((0, moment_1.default)(((0, moment_1.default)().unix()) * 1000).format('YYYY-MM-DD'), 'YYYY-MM-DD'),
];
}
// // console.log("字符串时间:", moment(myData[0]).format('YYYY MM DD'));
return myData;
};
exports.GetDataReckon = GetDataReckon;