2023-11-30 10:49:45 +08:00
|
|
|
|
import moment from 'moment'
|
|
|
|
|
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
|
|
|
|
|
2023-12-10 02:44:01 +08:00
|
|
|
|
/*
|
2023-11-30 10:49:45 +08:00
|
|
|
|
参考博客
|
|
|
|
|
|
https://blog.csdn.net/qq_36228377/article/details/125196997
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
export function formatTime(curTime: string, formatVal: string) {
|
2023-12-10 02:44:01 +08:00
|
|
|
|
/*
|
2023-11-30 10:49:45 +08:00
|
|
|
|
格式化时间
|
|
|
|
|
|
curTIme:要格式化的时间
|
2023-12-10 02:44:01 +08:00
|
|
|
|
formatVal:格式化时间的格式
|
2023-11-30 10:49:45 +08:00
|
|
|
|
*/
|
|
|
|
|
|
// 例如 curTime 2021-02-03 12-21-22 formatVal YYYY年MM月DD日 HH时mm分ss秒
|
|
|
|
|
|
return moment(curTime).format(formatVal)
|
|
|
|
|
|
}
|
|
|
|
|
|
// 时间格式
|
|
|
|
|
|
|
|
|
|
|
|
/* M 数字表示的月份,没有前导零 1到12
|
|
|
|
|
|
MM 数字表示的月份,有前导零 01到12
|
|
|
|
|
|
MMM 三个字母缩写表示的月份 Jan到Dec
|
|
|
|
|
|
MMMM 月份,完整的文本格式 January到December
|
|
|
|
|
|
Q 季度 1到4
|
|
|
|
|
|
D 月份中的第几天,没有前导零 1到31
|
|
|
|
|
|
DD 月份中的第几天,有前导零 01到31
|
|
|
|
|
|
d 星期中的第几天,数字表示 0到6,0表示周日,6表示周六
|
|
|
|
|
|
ddd 三个字母表示星期中的第几天 Sun到Sat
|
|
|
|
|
|
dddd 星期几,完整的星期文本 从Sunday到Saturday
|
|
|
|
|
|
w 年份中的第几周 如42:表示第42周
|
|
|
|
|
|
YYYY 四位数字完整表示的年份 如:2014 或 2000
|
|
|
|
|
|
YY 两位数字表示的年份 如:14 或 98
|
|
|
|
|
|
A 大写的AM PM AM PM
|
|
|
|
|
|
a 小写的am pm am pm
|
|
|
|
|
|
HH 小时,24小时制,有前导零 00到23
|
|
|
|
|
|
H 小时,24小时制,无前导零 0到23
|
|
|
|
|
|
hh 小时,12小时制,有前导零 00到12
|
|
|
|
|
|
h 小时,12小时制,无前导零 0到12
|
|
|
|
|
|
m 没有前导零的分钟数 0到59
|
|
|
|
|
|
mm 有前导零的分钟数 00到59
|
|
|
|
|
|
s 没有前导零的秒数 1到59
|
|
|
|
|
|
ss 有前导零的描述 01到59
|
|
|
|
|
|
X Unix时间戳 1411572969 */
|
|
|
|
|
|
|
|
|
|
|
|
export function getDiffTime(start: string, end: string, unit: any) {
|
2023-12-10 02:44:01 +08:00
|
|
|
|
/*
|
|
|
|
|
|
|
2023-11-30 10:49:45 +08:00
|
|
|
|
start 开始时间
|
|
|
|
|
|
end 结束时间
|
|
|
|
|
|
unit 时间单位
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
moment(start).diff(moment(end), unit) //32
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 格式化日期字符串
|
|
|
|
|
|
* timestamp 时间戳
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function formatDate(timestamp: any) {
|
|
|
|
|
|
// 补全为13位
|
|
|
|
|
|
const arrTimestamp: any = (timestamp + '').split('')
|
|
|
|
|
|
for (let start = 0; start < 13; start++) {
|
|
|
|
|
|
if (!arrTimestamp[start]) {
|
|
|
|
|
|
arrTimestamp[start] = '0'
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
timestamp = arrTimestamp.join('') * 1
|
|
|
|
|
|
const minute = 1000 * 60
|
|
|
|
|
|
const hour = minute * 60
|
|
|
|
|
|
const day = hour * 24
|
|
|
|
|
|
const month = day * 30
|
|
|
|
|
|
const now = new Date().getTime()
|
|
|
|
|
|
const diffValue = now - timestamp
|
|
|
|
|
|
// 如果本地时间反而小于变量时间
|
|
|
|
|
|
if (diffValue < 0) {
|
|
|
|
|
|
return '不久前'
|
|
|
|
|
|
}
|
|
|
|
|
|
// 计算差异时间的量级
|
|
|
|
|
|
const monthC: any = diffValue / month
|
|
|
|
|
|
const weekC: any = diffValue / (7 * day)
|
|
|
|
|
|
const dayC: any = diffValue / day
|
|
|
|
|
|
const hourC: any = diffValue / hour
|
|
|
|
|
|
const minC: any = diffValue / minute
|
|
|
|
|
|
// 数值补0方法
|
|
|
|
|
|
const zero = function (value: number) {
|
|
|
|
|
|
if (value < 10) {
|
|
|
|
|
|
return '0' + value
|
|
|
|
|
|
}
|
|
|
|
|
|
return value
|
|
|
|
|
|
}
|
|
|
|
|
|
// 使用
|
|
|
|
|
|
if (monthC > 4) {
|
|
|
|
|
|
// 超过1年,直接显示年月日
|
|
|
|
|
|
return (function () {
|
|
|
|
|
|
const date = new Date(timestamp)
|
|
|
|
|
|
return (
|
|
|
|
|
|
date.getFullYear() +
|
|
|
|
|
|
'年' +
|
|
|
|
|
|
zero(date.getMonth() + 1) +
|
|
|
|
|
|
'月' +
|
|
|
|
|
|
zero(date.getDate()) +
|
|
|
|
|
|
'日'
|
|
|
|
|
|
)
|
|
|
|
|
|
})()
|
|
|
|
|
|
} else if (monthC >= 1) {
|
|
|
|
|
|
return parseInt(monthC) + '月前'
|
|
|
|
|
|
} else if (weekC >= 1) {
|
|
|
|
|
|
return parseInt(weekC) + '周前'
|
|
|
|
|
|
} else if (dayC >= 1) {
|
|
|
|
|
|
return parseInt(dayC) + '天前'
|
|
|
|
|
|
} else if (hourC >= 1) {
|
|
|
|
|
|
return parseInt(hourC) + '小时前'
|
|
|
|
|
|
} else if (minC >= 1) {
|
|
|
|
|
|
return parseInt(minC) + '分钟前'
|
|
|
|
|
|
}
|
|
|
|
|
|
return '刚刚'
|
|
|
|
|
|
}
|
2023-12-08 17:31:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-10 02:44:01 +08:00
|
|
|
|
export const getNewDay = (dateTemp: any, days: any,separator:any = '.') => {
|
2023-12-08 17:31:40 +08:00
|
|
|
|
console.log("dateTemp",dateTemp,days)
|
|
|
|
|
|
if(!dateTemp ){
|
|
|
|
|
|
return ""
|
|
|
|
|
|
}
|
2023-12-10 02:44:01 +08:00
|
|
|
|
dateTemp = dateTemp.split(separator);
|
2023-12-08 17:31:40 +08:00
|
|
|
|
//转换为MM-DD-YYYY格式
|
|
|
|
|
|
let nDate: any = new Date(dateTemp[1] + "-" + dateTemp[2] + "-" + dateTemp[0]);
|
|
|
|
|
|
let millSeconds: any = Math.abs(nDate) + days * 24 * 60 * 60 * 1000;
|
|
|
|
|
|
let rDate: any = new Date(millSeconds);
|
|
|
|
|
|
let year: any = rDate.getFullYear();
|
|
|
|
|
|
let month: any = rDate.getMonth() + 1;
|
|
|
|
|
|
if (month < 10) month = "0" + month;
|
|
|
|
|
|
let date = rDate.getDate();
|
|
|
|
|
|
if (date < 10) date = "0" + date;
|
|
|
|
|
|
return year + "." + month + "." + date;
|
2023-12-10 02:44:01 +08:00
|
|
|
|
|
|
|
|
|
|
}
|