function strFormat(str: number) {
return str < 10 ? `0${str}` : str;
}
function timeStamp(time: number, isQuantum: any = 0) {
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
};
}
function initTime1(
date = "2023.6.27",
startTime = "09:00:00",
endTime = "21:00:00",
timeInterval = 1,
isQuantum = true,
// orderTime= [{
// startTime,
// endTime,
// }],
orderTime:any=[{}]
) {
const time: any = [];
// 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();
let 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) {
// console.log("isQuantum:"+isQuantum)
num++;
console.log(i + "-->" + num)
// currentOrderData.forEach((item) => {
// if (item.startTime === startTimeStamp) {
// time.push({
// begin: startTime,
// end: endTime,
// disable: false,
// });
// }
// });
// console.log("123:"+timeStamp(startTimeStamp).hour)
console.log("第" + num + "次循环开始:--------" + new Date(i).getHours())
console.log(time.length + "-条数据-")
let t1,t2,ot={}
const index = orderTime.find((ele: any) => {
t1 = new Date(`${date} ${ele.startTime}`).getTime();
t2 = new Date(i).getTime();
console.log("t2:"+timeStamp(t2).hour)
return t1===t2
// console.log(ele.startTime)
// return t1 === t2
})
let d={...index}
if (index) {
// let ot=orderTime[index]
// console.log(ot)
let startT = date+" "+d.startTime
let endT = `${date} ${d.endTime}`
let startTstamp = new Date(startT).getTime();
let endTstamp = new Date(endT).getTime();
let dayDiff = endTstamp - startTstamp
timeInterval = dayDiff / (3600 * 1000)
// timeInterval=1
// console.log("dayDiff:"+dayDiff)
console.log("timeinterval:" + timeInterval)
timeStr = 3600 * 1000 * timeInterval
// i = i + timeStr;
time.push({
begin: d.startTime,
end: d.endTime,
disable: true,
});
}
else {
timeInterval=1
timeStr = 3600 * 1000 * timeInterval
time.push({
begin: timeStamp(i, isQuantum).hour,
end: timeStamp(i + timeStr, isQuantum).hour,
disable: 0,
});
console.log("第" + num + "在else语句中执行:--------" + new Date(i).getHours())
console.log(time.length + "-条数据-")
}
// console.log(index)
// orderTime.forEach((item: any) => {
// let t1 = new Date(`${date} ${item.startTime}`).getTime();
// let t2 = new Date(i).getTime();
// console.log(t1 + "---" + t2)
// if (t1 === t2) {
// let startT = `${date} ${item.startTime}`
// let endT = `${date} ${item.endTime}`
// let startTstamp = new Date(startT).getTime();
// let endTstamp = new Date(endT).getTime();
// let dayDiff = endTstamp - startTstamp
// timeInterval = dayDiff / (3600 * 1000)
// // console.log("dayDiff:"+dayDiff)
// console.log("timeinterval:" + timeInterval)
// i = i + timeStr;
// time.push({
// begin: item.startTime,
// end: item.endTime,
// disable: true,
// });
// }
// else {
// time.push({
// begin: timeStamp(i, isQuantum).hour,
// end: timeStamp(i + timeStr, isQuantum).hour,
// disable: 0,
// });
// console.log("第" + num + "在else语句中执行:--------" + new Date(i).getHours())
// console.log(time.length + "-条数据-")
// }
// });
// time.push({
// begin: timeStamp(i, isQuantum).hour,
// end: timeStamp(i + timeStr, isQuantum).hour,
// disable: 0,
// });
console.log("第" + num + "在foreach之外执行:--------" + new Date(i).getHours())
console.log(time.length + "-条数据-")
// console.log("第" + num + "次循环结束:--------" + new Date(i).getHours())
console.log(time.length + "-条数据-")
} else {
time.push({
time: timeStamp(i).hour,
disable: false,
});
}
if (isQuantum && num >= count) return time;
}
return time;
}
const
orderTime = [
{
startTime: "10:00:00",
endTime: "10:30:00",
},
{
startTime: "12:00:00",
endTime: "12:30:00",
},
{
startTime: "15:30:00",
endTime: "16:00:00",
}
]
const a = initTime1("2023.6.27", "09:00:00", "21:00:00", 1, true, orderTime);
console.log(a)
// const h = new Date(1687831200000)
// console.log("h:"+h.getHours())
// // console.log("m:"+h.getMinutes())
// const isQuantum=0
// const hour = h.getHours();
// // const min = h.getMinutes();
// const date = timeStamp("10:30:00");
// // // console.log("date:"+date)
// // // console.log(Date.now())
// // console.log(min)
// // console.log(strFormat(0))
// // console.log("time:"+`${strFormat(hour)}:${strFormat(min)}${isQuantum ? "" : ":00"}`)
// // // console.log("min:"+min)
// const startDate = "10:00:00"
// const startTimeStamp = new Date(startDate).getTime();
// console.log(startTimeStamp)
// console.log(strFormat(0))