317 lines
8.3 KiB
JavaScript
317 lines
8.3 KiB
JavaScript
|
import moment from "moment/moment";
|
|||
|
|
|||
|
// 获取当月第一天
|
|||
|
export function getFirstDayOfMonth(date) {
|
|||
|
date.setDate(1);
|
|||
|
return this.timeFormat(date);
|
|||
|
}
|
|||
|
// 获取当天时间
|
|||
|
export function getToday(type = 'YYYY-MM-DD HH:mm:ss') {
|
|||
|
const obj = {
|
|||
|
starttime: "",
|
|||
|
endtime: "",
|
|||
|
};
|
|||
|
obj.starttime = moment(moment().startOf("day").valueOf()).format(
|
|||
|
type
|
|||
|
);
|
|||
|
obj.endtime = moment(moment().valueOf()).format(type);
|
|||
|
return obj;
|
|||
|
}
|
|||
|
/**
|
|||
|
*
|
|||
|
* @returns 今日的时间戳
|
|||
|
*/
|
|||
|
export function getTodayTime() {
|
|||
|
// 获取今天的开始时间戳(午夜00:00:00)
|
|||
|
const startOfToday = new Date();
|
|||
|
startOfToday.setHours(0, 0, 0, 0);
|
|||
|
const startOfTodayTimestamp = startOfToday.getTime();
|
|||
|
|
|||
|
// 获取今天的结束时间戳(下一天的午夜前一秒,即23:59:59)
|
|||
|
const endOfToday = new Date();
|
|||
|
endOfToday.setHours(23, 59, 59, 999); // 设置时间为23:59:59.999
|
|||
|
const endOfTodayTimestamp = endOfToday.getTime();
|
|||
|
return {
|
|||
|
startOfTodayTimestamp,
|
|||
|
endOfTodayTimestamp,
|
|||
|
};
|
|||
|
}
|
|||
|
// 获取当月时间
|
|||
|
export function getCurrMonthDays() {
|
|||
|
const obj = {
|
|||
|
starttime: "",
|
|||
|
endtime: "",
|
|||
|
};
|
|||
|
obj.starttime = moment(
|
|||
|
moment().month(moment().month()).startOf("month").valueOf()
|
|||
|
).format("YYYY-MM-DD HH:mm:ss");
|
|||
|
obj.endtime = moment(
|
|||
|
moment().month(moment().month()).endOf("month").valueOf()
|
|||
|
).format("YYYY-MM-DD HH:mm:ss");
|
|||
|
return obj;
|
|||
|
}
|
|||
|
// 获取当月时间
|
|||
|
export function getCurrMonthDay() {
|
|||
|
const obj = {
|
|||
|
starttime: "",
|
|||
|
endtime: "",
|
|||
|
};
|
|||
|
obj.starttime = moment().month(moment().month()).startOf("month").valueOf()
|
|||
|
obj.endtime = moment().endOf('day').valueOf()
|
|||
|
return obj;
|
|||
|
}
|
|||
|
// 获取昨日时间
|
|||
|
export function getYesterday(type = "YYYY-MM-DD HH:mm:ss") {
|
|||
|
const obj = {
|
|||
|
starttime: "",
|
|||
|
endtime: "",
|
|||
|
};
|
|||
|
obj.starttime = moment(
|
|||
|
moment().add(-1, "days").startOf("day").valueOf()
|
|||
|
).format(type);
|
|||
|
obj.endtime = moment(moment().add(-1, "days").endOf("day").valueOf()).format(
|
|||
|
type
|
|||
|
);
|
|||
|
return obj;
|
|||
|
}
|
|||
|
// 获取近一周时间
|
|||
|
export function getlastweek() {
|
|||
|
const obj = {
|
|||
|
starttime: "",
|
|||
|
endtime: "",
|
|||
|
};
|
|||
|
obj.starttime = moment(
|
|||
|
moment().add(-7, "days").startOf("day").valueOf()
|
|||
|
).format("YYYY-MM-DD HH:mm:ss");
|
|||
|
obj.endtime = moment(moment().add(-1, "days").endOf("day").valueOf()).format(
|
|||
|
"YYYY-MM-DD HH:mm:ss"
|
|||
|
);
|
|||
|
return obj;
|
|||
|
}
|
|||
|
// 获取上个月时间
|
|||
|
export function getLastMonthDays() {
|
|||
|
const obj = {
|
|||
|
starttime: "",
|
|||
|
endtime: "",
|
|||
|
};
|
|||
|
obj.starttime = moment(
|
|||
|
moment()
|
|||
|
.month(moment().month() - 1)
|
|||
|
.startOf("month")
|
|||
|
.valueOf()
|
|||
|
).format("YYYY-MM-DD HH:mm:ss");
|
|||
|
obj.endtime = moment(
|
|||
|
moment()
|
|||
|
.month(moment().month() - 1)
|
|||
|
.endOf("month")
|
|||
|
.valueOf()
|
|||
|
).format("YYYY-MM-DD HH:mm:ss");
|
|||
|
return obj;
|
|||
|
}
|
|||
|
// 时间戳转化为 YY-mm-dd hh-mm-ss格式
|
|||
|
export function filterTime2(time) {
|
|||
|
var date = new Date(time);
|
|||
|
var y = date.getFullYear();
|
|||
|
var m = date.getMonth() + 1;
|
|||
|
m = m < 10 ? "0" + m : m;
|
|||
|
var d = date.getDate();
|
|||
|
d = d < 10 ? "0" + d : d;
|
|||
|
var h = date.getHours();
|
|||
|
h = h < 10 ? "0" + h : h;
|
|||
|
var minute = date.getMinutes();
|
|||
|
minute = minute < 10 ? "0" + minute : minute;
|
|||
|
var s = date.getSeconds();
|
|||
|
s = s < 10 ? "0" + s : s;
|
|||
|
return y + "-" + m + "-" + d + " " + h + ":" + minute + ":" + s;
|
|||
|
}
|
|||
|
// 时间戳转化为 YY-mm-dd 格式
|
|||
|
export function filterTimeYMD(time) {
|
|||
|
var date = new Date(time);
|
|||
|
var y = date.getFullYear();
|
|||
|
var m = date.getMonth() + 1;
|
|||
|
m = m < 10 ? "0" + m : m;
|
|||
|
var d = date.getDate();
|
|||
|
d = d < 10 ? "0" + d : d;
|
|||
|
return y + "-" + m + "-" + d;
|
|||
|
}
|
|||
|
// 时间戳转化为 mm-dd 格式
|
|||
|
export function filterTimeMD(time) {
|
|||
|
var date = new Date(time);
|
|||
|
var m = date.getMonth() + 1;
|
|||
|
m = m < 10 ? "0" + m : m;
|
|||
|
var d = date.getDate();
|
|||
|
d = d < 10 ? "0" + d : d;
|
|||
|
return m + "-" + d;
|
|||
|
}
|
|||
|
// 时间戳转化为 mm-dd 格式
|
|||
|
export function filterTimeMDHM(time) {
|
|||
|
var date = new Date(time);
|
|||
|
var m = date.getMonth() + 1;
|
|||
|
m = m < 10 ? "0" + m : m;
|
|||
|
var d = date.getDate();
|
|||
|
d = d < 10 ? "0" + d : d;
|
|||
|
var h = date.getHours();
|
|||
|
h = h < 10 ? "0" + h : h;
|
|||
|
var minute = date.getMinutes();
|
|||
|
minute = minute < 10 ? "0" + minute : minute;
|
|||
|
return m + "-" + d + " " + h + ":" + minute;
|
|||
|
}
|
|||
|
// 获取特定天数
|
|||
|
export function filterTime1(time) {
|
|||
|
var date = new Date(time);
|
|||
|
var d = date.getDate();
|
|||
|
d = d < 10 ? "0" + d : d;
|
|||
|
return d;
|
|||
|
}
|
|||
|
// 时间戳转化为 YY-mm-dd格式
|
|||
|
export function filterTime3(time) {
|
|||
|
var date = new Date(time);
|
|||
|
var y = date.getFullYear();
|
|||
|
var m = date.getMonth() + 1;
|
|||
|
m = m < 10 ? "0" + m : m;
|
|||
|
var d = date.getDate();
|
|||
|
d = d < 10 ? "0" + d : d;
|
|||
|
return y + "-" + m + "-" + d;
|
|||
|
}
|
|||
|
// 时间戳转化为 YY-mm格式
|
|||
|
export function filterTime4(time) {
|
|||
|
var date = new Date(time);
|
|||
|
var y = date.getFullYear();
|
|||
|
var m = date.getMonth() + 1;
|
|||
|
m = m < 10 ? "0" + m : m;
|
|||
|
return y + "-" + m;
|
|||
|
}
|
|||
|
// 根据每月的时间戳获取最后一天的时间戳
|
|||
|
export function filterTime5(time) {
|
|||
|
const now = new Date(time); // 当前日期
|
|||
|
// console.log(now)
|
|||
|
const nowMonth = now.getMonth(); // 当前月
|
|||
|
const nowYear = now.getFullYear(); // 当前年
|
|||
|
// this.tmieformat()
|
|||
|
// console.log(nowMonth + 1)
|
|||
|
const monthEndDate = new Date(nowYear, nowMonth + 1, 0, 23, 59, 59);
|
|||
|
const c = Date.parse(monthEndDate);
|
|||
|
return c;
|
|||
|
}
|
|||
|
// 返回小时
|
|||
|
export function filterTimeHH(time) {
|
|||
|
var date = new Date(time);
|
|||
|
var h = date.getHours();
|
|||
|
h = h < 10 ? "0" + h : h;
|
|||
|
return h;
|
|||
|
}
|
|||
|
// 返回月天小时
|
|||
|
export function filterTimeMDHS(time) {
|
|||
|
var date = new Date(time);
|
|||
|
var m = date.getMonth() + 1;
|
|||
|
m = m < 10 ? "0" + m : m;
|
|||
|
var d = date.getDate();
|
|||
|
d = d < 10 ? "0" + d : d;
|
|||
|
var h = date.getHours();
|
|||
|
h = h < 10 ? "0" + h : h;
|
|||
|
return m + "月" + d + "日" + h;
|
|||
|
}
|
|||
|
// 复杂数组对象去重
|
|||
|
export function uniqueArray(array) {
|
|||
|
return array.reduce((accumulator, currentValue) => {
|
|||
|
const stringified = JSON.stringify(currentValue);
|
|||
|
if (!accumulator.some((item) => JSON.stringify(item) === stringified)) {
|
|||
|
accumulator.push(currentValue);
|
|||
|
}
|
|||
|
return accumulator;
|
|||
|
}, []);
|
|||
|
}
|
|||
|
// 判断当月有多少天
|
|||
|
export function getDaysInCurrentMonth() {
|
|||
|
const today = new Date();
|
|||
|
const year = today.getFullYear();
|
|||
|
const month = today.getMonth() + 1;
|
|||
|
const nextMonthFirstDay = new Date(year, month, 1);
|
|||
|
const lastDay = new Date(nextMonthFirstDay - 1);
|
|||
|
return lastDay.getDate();
|
|||
|
}
|
|||
|
|
|||
|
export function getnewdate(dataStr, pattern = "YYYY-MM-DD HH:mm:ss") {
|
|||
|
if (dataStr) {
|
|||
|
var date = new Date(dataStr / 1);
|
|||
|
var y = date.getFullYear();
|
|||
|
var m = date.getMonth() + 1;
|
|||
|
m = m < 10 ? "0" + m : m;
|
|||
|
var d = date.getDate();
|
|||
|
d = d < 10 ? "0" + d : d;
|
|||
|
var h = date.getHours();
|
|||
|
h = h < 10 ? "0" + h : h;
|
|||
|
var minute = date.getMinutes();
|
|||
|
minute = minute < 10 ? "0" + minute : minute;
|
|||
|
var s = date.getSeconds();
|
|||
|
s = s < 10 ? "0" + s : s;
|
|||
|
return y + "-" + m + "-" + d + " " + h + ":" + minute + ":" + s;
|
|||
|
} else {
|
|||
|
return "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
*
|
|||
|
* @returns 当前日期,格式为"yyyy-mm-dd"
|
|||
|
*/
|
|||
|
export function getCurrentDate() {
|
|||
|
var today = new Date();
|
|||
|
var dd = String(today.getDate()).padStart(2, "0");
|
|||
|
var mm = String(today.getMonth() + 1).padStart(2, "0"); // 注意:月份是从0开始的,所以需要+1
|
|||
|
var yyyy = today.getFullYear();
|
|||
|
return yyyy + "-" + mm + "-" + dd;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @param {String} time 'yyyy-mm-dd'
|
|||
|
* @returns 'yyyy-mm-dd'转为时间戳
|
|||
|
*/
|
|||
|
export function dateToTimestamp(time) {
|
|||
|
if (time) {
|
|||
|
var date = new Date(time);
|
|||
|
return date.getTime();
|
|||
|
}
|
|||
|
}
|
|||
|
/**
|
|||
|
* @param {*} dateStr
|
|||
|
* @returns '传入日期的最后一秒时间戳'
|
|||
|
*/
|
|||
|
export function getLastSecondTimestamp(dateStr) {
|
|||
|
// 创建一个Date对象
|
|||
|
var date = new Date(dateStr);
|
|||
|
|
|||
|
// 设置时间为当天的最后一秒
|
|||
|
date.setHours(23, 59, 59);
|
|||
|
|
|||
|
// 返回时间戳
|
|||
|
return date.getTime();
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @returns '上个月的时间戳'
|
|||
|
*/
|
|||
|
export function getLastMounthTime() {
|
|||
|
// 获取当前日期
|
|||
|
const now = new Date();
|
|||
|
|
|||
|
// 设置日期为上个月的第一天
|
|||
|
const startOfPreviousMonth = new Date(
|
|||
|
now.getFullYear(),
|
|||
|
now.getMonth() - 1,
|
|||
|
1
|
|||
|
);
|
|||
|
|
|||
|
// 设置日期为上个月的最后一天
|
|||
|
const endOfPreviousMonth = new Date(now.getFullYear(), now.getMonth(), 0);
|
|||
|
// 设置时间为当天的最后一秒
|
|||
|
endOfPreviousMonth.setHours(23, 59, 59, 999);
|
|||
|
// 获取时间戳
|
|||
|
const startOfLastMonth = startOfPreviousMonth.getTime();
|
|||
|
const endOfLastMonth = endOfPreviousMonth.getTime();
|
|||
|
return {
|
|||
|
startOfLastMonth,
|
|||
|
endOfLastMonth,
|
|||
|
};
|
|||
|
}
|