project-general-tools
Version:
项目开发通用工具类封装
117 lines (116 loc) • 5.57 kB
JavaScript
;
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
*/