Files
fe_service_ebtp_frontend/src/utils/DateUtils.ts

182 lines
4.9 KiB
TypeScript
Raw Normal View History

2020-12-23 11:14:35 +08:00
/*
* @Author: liqiang
* @Date: 2020-12-02 14:25:23
2022-03-10 14:24:13 +08:00
* @LastEditTime: 2021-03-25 15:46:32
2020-12-23 11:14:35 +08:00
* @LastEditors: Please set LastEditors
* @Description:
* @FilePath: \ebtp-cloud-frontend\src\utils\DateUtils.ts
*/
import moment from "moment";
import { isEmpty } from "./CommonUtils";
/**
*
*/
export const dateTimeFormatter = 'yyyy-MM-DD HH:mm:ss';
/**
*
* @param date
*/
export function saveDateTimeFormatter(date: any) {
if (isEmpty(date)) {
return date;
}
return date.format(dateTimeFormatter);
}
/**
*
* @param date
*/
export function echoDateTimeFormatter(date: any) {
if (isEmpty(date)) {
return date;
}
return moment(date, dateTimeFormatter);
}
/**
*
*/
export function nowExceedSpecifiedTime(specifiedTime: string) {
let now = new Date(),
specified = new Date(specifiedTime);
return now.getTime() > specified.getTime();
}
2021-01-16 11:29:42 +08:00
export function showTimeDefaultValue() {
return moment('YYYY/MM/DD HH:mm:ss');
}
function range(start: any, end: any) {
const result = [];
for (let i = start; i < end; i++) {
result.push(i);
}
return result;
}
/**
*
* @param current
*/
export function datePickerDisabledDate(current: any) {
return current && current < moment().subtract(1, 'days').endOf('day');
}
/**
*
* @param current
*/
export function datePickerDisabledTime(current: any) {
if (current) {
let today = moment().date();
if (today == current.date()) {
let hour = Number(moment().hour());
let minute = Number(moment().minutes());
return {
disabledHours: () => range(0, hour),
2022-03-10 14:24:13 +08:00
disabledMinutes: () => hour === current.hour() ? range(0, minute) : []
2021-01-16 11:29:42 +08:00
};
} else {
return {
disabledHours: () => [],
disabledMinutes: () => []
};
}
}
return {
disabledHours: () => range(0, 24),
disabledMinutes: () => range(0, 60),
disabledSeconds: () => range(0, 60)
};
}
/**
*
* @param d1
* @param d2
*/
export function nowInDateBetwen(d1: any, d2: any) {
if (isEmpty(d1) || isEmpty(d2)) {
return false;
}
//如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
// let dateBegin = new Date(d1.replace(/-/g, "/"));//将-转化为/使用new Date
// let dateEnd = new Date(d2.replace(/-/g, "/"));//将-转化为/使用new Date
//将-转化为/使用new Date
let dateBegin = new Date(d1),
//将-转化为/使用new Date
dateEnd = new Date(d2),
//获取当前时间
dateNow = new Date();
let beginDiff = dateNow.getTime() - dateBegin.getTime();//时间差的毫秒数
let beginDayDiff = Math.floor(beginDiff / (24 * 3600 * 1000));//计算出相差天数
//时间差的毫秒数
let endDiff = dateEnd.getTime() - dateNow.getTime();
//计算出相差天数
let endDayDiff = Math.floor(endDiff / (24 * 3600 * 1000));
//已过期
if (endDayDiff < 0) {
return false
}
//没到开始时间
if (beginDayDiff < 0) {
return false;
}
return true;
}
/**
*
* @param arr
*/
export function getMaxDate(arr: string[]) {
if (isEmpty(arr) || arr.length === 0) {
return null;
}
let index = 0;
for (let i = 1; i < arr.length; i++) {
let date = new Date(arr[i]);
index = new Date(arr[index]).getTime() > date.getTime() ? index : i;
}
return arr[index];
}
/**
*
* @param date1
* @param date2
*/
export function judgmentIntervalDay(date1: any, date2: any) {
2022-03-10 14:24:13 +08:00
// let dateSpan,
// iDays;
// date1 = Date.parse(date1);
// date2 = Date.parse(date2);
// dateSpan = date2 - date1;
// dateSpan = Math.abs(dateSpan);
// iDays = Math.floor(dateSpan / (24 * 3600 * 1000));
// return iDays
date1 = moment(date1).startOf('day')
date2 = moment(date2).startOf('day')
return date2?.diff(date1, "days")
2021-01-16 11:29:42 +08:00
};
/**
*
* @param date1
* @param date2
*/
export function judgmentOfTwoTimePeriods(date1: string, date2: string) {
let d1 = new Date(date1),
2022-03-10 14:24:13 +08:00
d2 = new Date(date2);
2021-01-16 11:29:42 +08:00
return d1.getTime() > d2.getTime();
2022-03-10 14:24:13 +08:00
}
/**
* n天或者减n天
* @param date
* @param day
*/
export function addOrSubtractADayFromTheDate(date: string, day: number) {
if(isEmpty(date)){
return null;
}
let d1 = new Date(date);
let d2 = d1.setDate(d1.getDate() + day);
return moment(d2).format(dateTimeFormatter);
}