export function useDisabledDate() {
// 开始时间与结束时间,采用赋值的方式
const forDisStartTime = ref<Date | string>()
const forDisEndTime = ref<Date | string>()
// 不可用的开始时间,如图1所示
const disabledStartTime = (data: Date) => {
return data.getTime() > new Date().getTime()
}
// 结束时间--日期
const disabledEndTimeDate = (data: Date) => {
if (forDisStartTime.value) {
const hours = new Date(forDisStartTime.value).getHours(),
seconds = new Date(forDisStartTime.value).getSeconds(),
minutes = new Date(forDisStartTime.value).getMinutes()
if (hours == 0 && minutes == 0 && seconds == 0) return data.getTime() < new Date(forDisStartTime.value).getTime() - 1000
else return data.getTime() < new Date(forDisStartTime.value).getTime() - 8.64e7
}
}
// 结束时间--时
const disabledEndTimeHours = () => {
const hours = new Date(forDisStartTime.value as Date).getHours(),
sY = new Date(forDisStartTime.value).getFullYear(),
sM = new Date(forDisStartTime.value).getMonth(),
sD = new Date(forDisStartTime.value).getDate(),
eY = new Date(forDisEndTime.value).getFullYear(),
eM = new Date(forDisEndTime.value).getMonth(),
eD = new Date(forDisEndTime.value).getDate()
const arrs = []
if (sY == eY && sM == eM && sD == eD) {
for (let i = 0; i < 24; i++) {
if (hours <= i) continue
arrs.push(i)
}
}
return arrs
}
// 结束时间--分
const disabledEndTimeMinutes = () => {
const minutes = new Date(forDisStartTime.value as Date).getMinutes(),
sY = new Date(forDisStartTime.value).getFullYear(),
sM = new Date(forDisStartTime.value).getMonth(),
sD = new Date(forDisStartTime.value).getDate(),
eY = new Date(forDisEndTime.value).getFullYear(),
eM = new Date(forDisEndTime.value).getMonth(),
eD = new Date(forDisEndTime.value).getDate()
const arrs = []
if (sY == eY && sM == eM && sD == eD) {
for (let i = 0; i < 60; i++) {
if (minutes <= i) continue
arrs.push(i)
}
}
return arrs
}
// 结束时间--秒
const disabledEndTimeSeconds = () => {
const seconds = new Date(forDisStartTime.value).getSeconds(),
sY = new Date(forDisStartTime.value).getFullYear(),
sM = new Date(forDisStartTime.value).getMonth(),
sD = new Date(forDisStartTime.value).getDate(),
eY = new Date(forDisEndTime.value).getFullYear(),
eM = new Date(forDisEndTime.value).getMonth(),
eD = new Date(forDisEndTime.value).getDate()
const arrs = []
if (sY == eY && sM == eM && sD == eD) {
for (let i = 0; i < 60; i++) {
if (seconds <= i) continue
arrs.push(i)
}
}
return arrs
}
return {
forDisStartTime,
forDisEndTime,
disabledStartTime,
disabledEndTimeDate,
disabledEndTimeHours,
disabledEndTimeMinutes,
disabledEndTimeSeconds
}
}