var addsub = {
/*
时间段计算,两个时间或者两个时间戳
传入时间戳或者时间段(2022-05-01 00:00:00或者2022/05/01 00:00:00))
starttime 开始时间,overtime 结束时间,格式为2022-05-01 00:00:00或者2022/05/01 00:00:00
new Date().getTime() 返回毫秒数
interval true 相差多少时间 false超出多少时间
*/
AddSubTime(starttime, overtime) {
if (this.isNumber(starttime)) {
return this.TemlefTimea(starttime, overtime, false)
} else {
return this.TemlefTimea(starttime, overtime, true)
}
},
//sttype 为true 为都是时间(2022-05-01 00:00:00)------------为false 都是毫秒(既时间戳)
TemlefTimea(st, ov, timetype) {
let arr={}
// var date1 = '2022-05-01 00:00:00'; //开始时间
var date1 = timetype ? new Date(st).getTime() : st
//var date2 = new Date(); //结束时间
// var date2 = '2022-05-01 00:01:00';
var date2 = timetype ? new Date(ov).getTime() : ov
//var date3 = date2.getTime() - new Date(date1).getTime(); //时间差的毫秒数
var date3 = date2 - date1;
//------------------------------
//计算出相差天数
var days = Math.floor(date3 / (24 * 3600 * 1000))
//计算出小时数
var leave1 = date3 % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
var hours = Math.floor(leave1 / (3600 * 1000))
//计算相差分钟数
var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000))
//计算相差秒数
var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
var seconds = Math.round(leave3 / 1000)
//0=> starttime<overtime 1=> starttime>overtime
arr.status=days<0||hours<0||minutes<0||seconds<0?0:1
arr.days=Math.abs(days)
arr.hours=Math.abs(hours)
arr.minutes=Math.abs(minutes)
arr.seconds=Math.abs(seconds)
return arr
// return (" 相差 " + days + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒")
},
/*
时间和整数小时加减
时间2022-05-01 00:00:00 或者2018/01/01 12:00:00和 n小时
time :2022-05-01 00:00:00
inthour :int 小时
type: true 相加 false 相减
*/
JsTime(time, inthour, type) {
var _d = new Date(time);
if (type) {
_d = new Date(_d.valueOf() + inthour * (60 * 60 * 1000)); // 当前时间加
} else {
_d = new Date(_d.valueOf() - inthour * (60 * 60 * 1000)); // 当前时间减
}
// _d = new Date(_d.valueOf() - 60* 60 * 1000);// 当前时间减掉1小时
// _d = new Date(_d.valueOf() + 60 * 1000);// 当前时间加上1分钟
// _d = new Date(_d.valueOf() - 60 * 1000);// 当前时间减掉1分钟
return this.formatDate(_d.getTime());
},
/*
时间和整数分钟加减
时间2022-05-01 00:00:00 或者2018/01/01 12:00:00和 n分钟
time :2022-05-01 00:00:00
inthour :int 分钟
type: true 相加 false 相减
*/
TimeMiute(time, inthour, type) {
var _d = new Date(time);
if (type) {
_d = new Date(_d.valueOf() + inthour * (60 * 1000)); // 当前时间加上1分钟
} else {
_d = new Date(_d.valueOf() - inthour * (60 * 1000)); // 当前时间减去1分钟
}
var _d_year111 = _d.getFullYear(); //年
var _d_month111 = _d.getMonth() + 1; //月
_d_month111 = (_d_month111 < 10 ? "0" + _d_month111 : _d_month111);
var _d_day111 = _d.getDate(); //日
_d_day111 = (_d_day111 < 10 ? "0" + _d_day111 : _d_day111);
var _d_hours111 = _d.getHours();
var _d_minutes111 = _d.getMinutes();
var _d_seconds111 = _d.getSeconds();
if (_d_hours111 < 10) _d_hours111 = "0" + _d_hours111;
if (_d_minutes111 < 10) _d_minutes111 = "0" + _d_minutes111;
if (_d_seconds111 < 10) _d_seconds111 = "0" + _d_seconds111;
var _data = _d_year111 + "-" + _d_month111.toString() + "-" + _d_day111 + " " + _d_hours111 + ":" +
_d_minutes111 + ":" + _d_seconds111;
return _data;
},
//时间戳转换为时间 时间戳->2022-05-01 00:00:00
//时间戳转换方法 date:时间戳数字
formatDate(date) {
var date = new Date(date);
var YY = date.getFullYear() + '-';
var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
return YY + MM + DD + " " + hh + mm + ss;
},
//判断是否是整数
isNumber(number) {
return (number | 0) === number
}
}
export default addsub
时间戳,年月日,小时操作工具
最新推荐文章于 2022-07-20 10:08:11 发布