94 lines
2.6 KiB
JavaScript
94 lines
2.6 KiB
JavaScript
//字符串拼接
|
|
function strFormat(str) {
|
|
return str < 10 ? `0${str}` : str
|
|
}
|
|
// 获取当前时间
|
|
export function currentTime() {
|
|
const myDate = new Date();
|
|
const y = myDate.getFullYear()
|
|
const m = myDate.getMonth() + 1;
|
|
const d = myDate.getDate();
|
|
const date = y + '-' + strFormat(m) + '-' + strFormat(d);
|
|
|
|
const hour = myDate.getHours()
|
|
const min = myDate.getMinutes()
|
|
const secon = myDate.getSeconds()
|
|
const time = strFormat(hour) + ':' + strFormat(min) + ':' + strFormat(secon);
|
|
return {
|
|
date,
|
|
time
|
|
}
|
|
}
|
|
|
|
//时间戳转日期
|
|
export function timeStamp(time, isQuantum) {
|
|
const dates = new Date(time)
|
|
const year = dates.getFullYear()
|
|
const month = dates.getMonth() + 1
|
|
const date = dates.getDate()
|
|
const day = dates.getDay()
|
|
const hour = dates.getHours()
|
|
const min = dates.getMinutes()
|
|
const days = ['日', '一', '二', '三', '四', '五', '六']
|
|
return {
|
|
allDate: `${year}/${strFormat(month)}/${strFormat(date)}`,
|
|
date: `${strFormat(year)}-${strFormat(month)}-${strFormat(date)}`, //返回的日期 07-01
|
|
day: `星期${days[day]}`, //返回的礼拜天数 星期一
|
|
hour: strFormat(hour) + ':' + strFormat(min) + (isQuantum ? "" : ':00') //返回的时钟 08:00
|
|
}
|
|
}
|
|
|
|
//获取最近7天的日期和礼拜天数
|
|
export function initData() {
|
|
const time = []
|
|
const date = new Date()
|
|
|
|
const now = date.getTime() //获取当前日期的时间戳
|
|
let timeStr = 3600 * 24 * 1000 //一天的时间戳
|
|
let obj = {
|
|
0: "今天",
|
|
1: "明天",
|
|
2: "后天"
|
|
}
|
|
for (let i = 0; i < 7; i++) {
|
|
time.push({
|
|
date: timeStamp(now + timeStr * i).date, //保存日期
|
|
timeStamp: now + timeStr * i, //保存时间戳
|
|
week: obj[i] ?? timeStamp(now + timeStr * i).day
|
|
})
|
|
}
|
|
return time
|
|
}
|
|
|
|
//时间数组
|
|
export function initTime(startTime = '10:00:00', endTime = '21:00:00', timeInterval = 1, isQuantum = false) {
|
|
const time = []
|
|
const date = timeStamp(Date.now()).allDate
|
|
const startDate = `${date} ${startTime}`
|
|
const endDate = `${date} ${endTime}`
|
|
const startTimeStamp = new Date(startDate).getTime()
|
|
const endTimeStamp = new Date(endDate).getTime()
|
|
const timeStr = 3600 * 1000 * timeInterval
|
|
const sum = (endTimeStamp - startTimeStamp) / timeStr
|
|
const count = sum % 2 == 0 ? sum : (sum - 1)
|
|
let num = 0
|
|
for (let i = startTimeStamp; i <= endTimeStamp; i = i + timeStr) {
|
|
|
|
if (isQuantum) {
|
|
num++
|
|
time.push({
|
|
begin: timeStamp(i, isQuantum).hour,
|
|
end: timeStamp(i + timeStr, isQuantum).hour,
|
|
disable: false
|
|
})
|
|
} else {
|
|
time.push({
|
|
time: timeStamp(i).hour,
|
|
disable: false
|
|
})
|
|
}
|
|
if (isQuantum && num >= count) return time
|
|
}
|
|
return time
|
|
}
|