UNPKG

project-general-tools

Version:

项目开发通用工具类封装

117 lines (116 loc) 5.57 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /* * @Author: Mad Dragon 395548460@qq.com * @Date: 2020年3月21日 * @explanatory: 时间处理-工具类提供一些便捷地工具服务 */ const moment_1 = __importDefault(require("moment")); exports.default = { // 初始时间 formatInitTime(time = new Date(), norms = 'YYYY-MM-DD') { return (time && moment_1.default(time).format(norms)) || ''; }, // 时间 加法 formatAddTime(addNum = 1, addNorms = 'days', time = new Date(), norms = 'YYYY-MM-DD') { return ((time && moment_1.default(time).add(addNum, addNorms).format(norms)) || ''); }, // 时间 减法 formatSubtractTime(addNum = 1, addNorms = 'days', time = new Date(), norms = 'YYYY-MM-DD') { return ((time && moment_1.default(time).subtract(addNum, addNorms).format(norms)) || ''); }, // 搜索专用 开始时间 formatStartTime(time = new Date(), norms = 'YYYY-MM-DD') { return ((this.formatInitTime(time) && moment_1.default(this.formatInitTime(time)).format(norms)) || ''); }, // 搜索专用 结束时间 formatEndTime(time = new Date(), norms = 'YYYY-MM-DD', addNum = 1, addNorms = 'days') { return ((this.formatInitTime(time) && this.formatAddTime(addNum, addNorms, time, norms)) || ''); }, /* * 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒 * 其中,年月日为全格式,例如 : 2010-10-12 01:00:00 * 返回精度为:秒,分,小时,天 */ getDateDiff: function (startTime, endTime, diffType = 'dhm') { // 将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 startTime = startTime.replace(/-/g, '/'); endTime = endTime.replace(/-/g, '/'); // 将计算间隔类性字符转换为小写 diffType = diffType.toLowerCase(); const sTime = new Date(startTime); // 开始时间 const eTime = new Date(endTime); // 结束时间 const _total = eTime.getTime() - sTime.getTime(); // total const _second = parseInt((1000).toString()); // second const _minute = parseInt((1000 * 30).toString()); // minute const _hour = parseInt((1000 * 3600).toString()); // hour const _day = parseInt((1000 * 3600 * 24).toString()); // day const _month = parseInt((1000 * 3600 * 24 * 30).toString()); // month const day = parseInt((_total / _day).toString()) || 0; // 天 const hour = parseInt(((_total - day * _day) / _hour).toString()) || 0; // 时 const minute = parseInt(((_total - day * _day - hour * _hour) / _minute).toString()) || 0; // 分 const second = parseInt(((_total - day * _day - hour * _hour - minute * _minute) / _second).toString()) || 0; // 秒 // 作为除数的数字 let divNum = 1; switch (diffType) { case 'dhm': { const txt = eTime.getTime() - sTime.getTime() > 0 ? '剩余' : '已过期'; return (`${txt + Math.abs(day)}${Math.abs(hour)}${Math.abs(minute)} 分 `); } case 'second': divNum = _second; break; case 'minute': divNum = _minute; break; case 'hour': divNum = _hour; break; case 'day': divNum = _day; break; case 'month': divNum = _month; break; default: break; } return parseInt(((eTime.getTime() - sTime.getTime()) / parseInt(divNum.toString())).toString()) || 0; } }; /** * _ooOoo_ * o8888888o * 88' . '88 * (| -_- |) * O\ = /O * ____/`---'\____ * .' \\| |// `. * / \\||| : |||// \ * / _||||| -:- |||||- \ * | | \\\ - /// | | * | \_| ''\---/'' | | * \ .-\__ `-` ___/-. / * ___`. .' /--.--\ `. . __ * .'' '< `.___\_<|>_/___.' >'''. * | | : `- \`.;`\ _ /`;.`/ - ` : | | * \ \ `-. \_ __\ /__ _/ .-` / / * ======`-.____`-.___\_____/___.-`____.-'====== * `=---=' * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * 佛祖保佑 永无BUG * 佛曰: * 写字楼里写字间,写字间里程序员; * 程序人员写程序,又拿程序换酒钱。 * 酒醒只在网上坐,酒醉还来网下眠; * 酒醉酒醒日复日,网上网下年复年。 * 但愿老死电脑间,不愿鞠躬老板前; * 奔驰宝马贵者趣,公交自行程序员。 * 别人笑我忒疯癫,我笑自己命太贱; * 不见满街漂亮妹,哪个归得程序员? * * Mad Dragon 395548460@qq.com */