UNPKG

@jrj-front-end/tools

Version:

jrj前端工具包

177 lines (176 loc) 8.23 kB
"use strict"; 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;