@chenbz/wx_pay_v3
Version:
152 lines (151 loc) • 4.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @description 日期格式化
* @param date {Date} - 时间对象
* @param format {String} - 日期格式,例如:'yyyy-MM-dd hh:mm:ss' or 'yyyy-MM-dd' or 'hh:mm:ss'
* @author chenbingze
* @date 2022/3/10
*/
const getDateToString = (date = new Date(), format = 'yyyy-MM-dd hh:mm:ss') => {
const o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds(),
'q+': Math.floor((date.getMonth() + 3) / 3),
S: date.getMilliseconds(), // 毫秒
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (const k in o) {
if (new RegExp('(' + k + ')').test(format)) {
format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
}
}
return format;
};
/**
* @description 计算两个时间相差的 => 天、时、分、秒
* @param date1 {Date} - 开始时间
* @param date2 {Date} - 结束时间
* @author chenbingze
* @date 2022/3/12
*/
const getTimeDifference = (date1 = new Date(), date2 = new Date()) => {
const date3 = date2.getTime() - date1.getTime(); // 时间差秒
// 计算出相差天数
const days = Math.floor(date3 / (24 * 3600 * 1000));
// 计算出小时数
const leave1 = date3 % (24 * 3600 * 1000);
// 计算天数后剩余的毫秒数
const hours = Math.floor(leave1 / (3600 * 1000));
// 计算相差分钟数
const leave2 = leave1 % (3600 * 1000);
// 计算小时数后剩余的毫秒数
const minutes = Math.floor(leave2 / (60 * 1000));
// 计算相差秒数
const leave3 = leave2 % (60 * 1000);
// 计算分钟数后剩余的毫秒数
const seconds = Math.round(leave3 / 1000);
// 间隔天数
const differDays = days;
// 间隔小时
const differHours = (differDays * 24) + hours;
// 间隔分钟
const differMinutes = (differHours * 60) + minutes;
// 间隔秒
const differSeconds = (differMinutes * 60) + seconds;
return {
days,
hours,
minutes,
seconds,
differDays,
differHours,
differMinutes,
differSeconds,
};
};
/**
* @description 获取日期时间 yyyy-MM-dd hh:mm:ss
* @param date {Date} - 时间对象
* @author chenbingze
* @date 2022/3/10
*/
const getDateTime = (date = new Date()) => {
return getDateToString(date, 'yyyy-MM-dd hh:mm:ss');
};
/**
* @description 获取日期 yyyy-MM-dd
* @param date {Date} - 时间对象
* @author chenbingze
* @date 2022/3/10
*/
const getDate = (date = new Date()) => {
return getDateToString(date, 'yyyy-MM-dd');
};
/**
* @description 获取时间 hh:mm:ss
* @param date {Date} - 时间对象
* @author chenbingze
* @date 2022/3/10
*/
const getTime = (date = new Date()) => {
return getDateToString(date, 'hh:mm:ss');
};
/**
* @description 获取时间戳(毫秒级别)
* @param date {Date} - 时间对象
* @author chenbingze
* @date 2022/3/10
*/
const getTimestamp = (date = new Date()) => {
return date.getTime();
};
/**
* @description 获取时间戳(秒级别)
* @param date {Date} - 时间对象
* @author chenbingze
* @date 2022/3/10
*/
const getTimestamp10 = (date = new Date()) => {
const timestamp10 = Math.round(date.getTime() / 1000).toString();
return timestamp10;
};
/**
* @description 获取指定时间前进后退
* @param shuttle {object} - 向指定时间前进后者后退
* @param dateOld {date} - 时间
* @author chenbingze
* @date 2022/3/10
*/
const getDateShuttle = (shuttle, dateOld = new Date()) => {
const shuttle2 = Object.assign({ y: 0, M: 0, d: 0, h: 0, m: 0, s: 0 }, shuttle);
const date = new Date(dateOld);
const y = date.getFullYear() + shuttle2.y;
const M = date.getMonth() + shuttle2.M; // 月份
const d = date.getDate() + shuttle2.d; // 日
const h = date.getHours() + shuttle2.h; // 小时
const m = date.getMinutes() + shuttle2.m; // 分
const s = date.getSeconds() + shuttle2.s; // 秒
date.setFullYear(y);
date.setMonth(M);
date.setDate(d);
date.setHours(h);
date.setMinutes(m);
date.setSeconds(s);
return date;
};
exports.default = {
getDateToString,
getTimeDifference,
getDateTime,
getDate,
getTime,
getTimestamp,
getTimestamp10,
getDateShuttle,
};