import dayjs from 'dayjs'; import isBetween from 'dayjs/plugin/isBetween' dayjs.extend(isBetween) // 判断商品是否在可售时间内 export const isProductAvailable = (sellDaysStr, startTimeStr, endTimeStr) => { // 将后端返回的字符串转换为数组 const sellDays = sellDaysStr.split(','); const now = dayjs(); const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; const currentDay = days[now.day()]; // console.log('当前日期:', currentDay); // console.log('可售日期列表:', sellDays); // 检查当前周几是否在可售周几列表中 if (!sellDays.includes(currentDay)) { // console.log('当前日期不在可售日期列表中'); return false; } const startTime = dayjs(`${now.format('YYYY-MM-DD')} ${startTimeStr}`); let endTime = dayjs(`${now.format('YYYY-MM-DD')} ${endTimeStr}`); // 处理跨天情况 if (endTime.isBefore(startTime)) { endTime = endTime.add(1, 'day'); } // console.log('当前时间:', now.format('YYYY-MM-DD HH:mm:ss')); // console.log('开始时间:', startTime.format('YYYY-MM-DD HH:mm:ss')); // console.log('结束时间:', endTime.format('YYYY-MM-DD HH:mm:ss')); const isInRange = now.isBetween(startTime, endTime, null, '[)'); // console.log('当前时间是否在可售时间范围内:', isInRange); return isInRange; } //点单页面商品数据补充格式化,增加购物车选中数量,增加是否在可售时段内 export function goodsInitParamsFull(product) { return { ...product, cartNumber: 0, isSaleTimeshow: isProductAvailable(product.days, product .startTime, product.endTime) } }