import dayjs from 'dayjs';
|
/**
|
* 获取年月日
|
*/
|
export function getYearAndMonthAndDays(date=new Date()) {
|
let year = date.getFullYear()
|
let month = date.getMonth() + 1
|
if (month < 10) {
|
month = '0' + month + '-'
|
} else {
|
month = month + '-'
|
}
|
year = year + '-'
|
let days = date.getDate()
|
if (days < 10) {
|
days = '0' + days
|
} else {
|
days = days
|
}
|
return (year + month + days)
|
}
|
/**
|
* 日期格式化
|
*/
|
export function dateFormat(date, format = 'yyyy-MM-dd hh:mm:ss') {
|
if (date !== 'Invalid Date') {
|
var o = {
|
'M+': date.getMonth() + 1, // month
|
'd+': date.getDate(), // day
|
'h+': date.getHours(), // hour
|
'm+': date.getMinutes(), // minute
|
's+': date.getSeconds(), // second
|
'q+': Math.floor((date.getMonth() + 3) / 3), // quarter
|
S: date.getMilliseconds() // millisecond
|
}
|
if (/(y+)/.test(format)) {
|
format = format.replace(
|
RegExp.$1,
|
(date.getFullYear() + '').substr(4 - RegExp.$1.length)
|
)
|
}
|
for (var 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
|
}
|
return ''
|
}
|
|
/**
|
* 获取年月日 26号+1
|
* @param date
|
* @returns {string}
|
*/
|
export function getYearAndMonthAndDaysZTNS(date = new Date()) {
|
let year = date.getFullYear();
|
let month = date.getMonth();
|
let days = date.getDate();
|
|
// 判断是否是26号
|
if (days === 26) {
|
month++;
|
if (month > 11) {
|
month = 0;
|
year++;
|
}
|
}
|
month += 1;
|
month = month < 10 ? '0' + month + '-' : month + '-';
|
year = year + '-';
|
days = days < 10 ? '0' + days : days;
|
return (year + month + days);
|
}
|
|
/**
|
* 获取时间范围:26号-25号
|
* 初始化默认日期范围:近一个月(当前日期 - 30天 至 当前日期)
|
* @param format
|
* @returns {*[]}
|
*/
|
export function getTimeRange(format = 'YYYY-MM-DD HH:mm:ss') {
|
// 获取当前时间
|
const now = dayjs();
|
// 获取当前日期的「日」(1-31)
|
const currentDate = now.date();
|
|
let startTime, endTime;
|
|
// 核心逻辑:判断当前日期是否大于25号
|
if (currentDate > 25) {
|
// ✅ 情况1:当前日>25 → 当月26号 ~ 次月25号
|
startTime = now.startOf('month').add(25, 'day'); // 当月1号 +25天 = 26号
|
endTime = startTime.add(1, 'month').date(25).hour(23)
|
.minute(59)
|
.second(59); // 次月25号(dayjs自动处理跨年)
|
} else {
|
// ✅ 情况2:当前日≤25 → 上月26号 ~ 当月25号
|
startTime = now.subtract(1, 'month').startOf('month').add(25, 'day'); // 上月26号
|
endTime = now.date(25).hour(23)
|
.minute(59)
|
.second(59); // 当月25号
|
}
|
|
// 返回格式化后的时间数组
|
return [startTime.format(format), endTime.format(format)];
|
}
|
|
/**
|
* 获取班次月份
|
* @returns {*}
|
*/
|
export function getWorkMonth(){
|
// 获取当前时间
|
const now = dayjs();
|
// 获取当前日期的「日」(1-31)
|
const currentDate = now.date();
|
let workMonth;
|
// 核心逻辑:判断当前日期是否大于25号
|
if (currentDate > 25) {
|
workMonth = now.add(1, 'month')
|
}else{
|
workMonth = now
|
}
|
return workMonth
|
}
|