console
const salePlanList = [
{ "date": "合计", "weekDay": "", "goal": 5100, "predict": 5730, "predictRate": "112%", "flowerPot": "160/37", "fpFlower": 0, "fpPot": 0, "abandon": 4, "potAmount": 160, "flowerAmount": 37 },
{ "_id": "7TA8HBPV6K", "storeID": "S1006000725", "saleDate": 1693152000000, "goal": 1200, "predict": 1200, "potAcost": 13.5, "potAprice": 29, "potBcost": 25, "potBprice": 58, "flowerCost": 12, "flowerPrice": 29, "flowerPot": "35/6", "potRate": 0.15, "potAmount": 6, "flowerAmount": 35, "abandon": 1, "abandonRate": 0.006574996602918421, "date": "8/28", "weekDay": "周一", "predictRate": "100%" },
{ "_id": "7TA8HBPV6L", "storeID": "S1006000725", "saleDate": 1693238400000, "goal": 1500, "predict": 1500, "potAcost": 13.5, "potAprice": 29, "potBcost": 25, "potBprice": 58, "flowerCost": 12, "flowerPrice": 29, "flowerPot": "44/7", "potRate": 0.14, "potAmount": 7, "flowerAmount": 44, "abandon": 1, "abandonRate": 0.006276968077955758, "date": "8/29", "weekDay": "周二", "predictRate": "100%" },
{ "_id": "7TA8HBPV6M", "storeID": "S1006000725", "saleDate": 1693324800000, "goal": 1200, "predict": 1230, "potAcost": 13.5, "potAprice": 29, "potBcost": 25, "potBprice": 58, "flowerCost": 12, "flowerPrice": 29, "flowerPot": "33/10", "potRate": 0.23, "potAmount": 10, "flowerAmount": 33, "abandon": 1, "abandonRate": 0.007727905595905239, "date": "8/30", "weekDay": "周三", "predictRate": "102%" },
{ "_id": "7TA8HBPV6N", "storeID": "S1006000725", "saleDate": 1693411200000, "goal": 1200, "predict": 1800, "potAcost": 13.5, "potAprice": 29, "potBcost": 25, "potBprice": 58, "flowerCost": 12, "flowerPrice": 29, "flowerPot": "48/14", "potRate": 0.23, "potAmount": 14, "flowerAmount": 48, "abandon": 1, "abandonRate": 0.008145892942602002, "date": "8/31", "weekDay": "周四", "predictRate": "150%" }
]
const purchaseDate = 1693238400000
const receiptDate = 1693324800000
const saleDLDate = 1693411200000
console.log("发注日:",dayjs(purchaseDate).format('YYYY-MM-DD HH:mm:ss'))
console.log("入货日:",dayjs(receiptDate).format('YYYY-MM-DD HH:mm:ss'))
console.log("销售截止日:",dayjs(saleDLDate).format('YYYY-MM-DD HH:mm:ss'))
const result = handleDuaResult(purchaseDate, receiptDate, saleDLDate, salePlanList)
console.log(result)
// 计算 发注日 ~ 入货日期间 和 入货日期 至 售卖截止日期间的销售数、废弃数
function handleDuaResult(purchaseDate, receiptDate, saleDLDate, salePlanList) {
// 获取收获日的前一天
const endDate = dayjs(receiptDate).subtract(1, 'day').startOf('day').valueOf();
console.log(endDate)
let prSaleAmount = 0
let prAbandonAmount = 0
let rsSaleAmount = 0
let rsAbandonAmount = 0
salePlanList.map(item => {
if (item.date !== "合计") {
// 计算销售数和废弃数:时间跨度为发注日到 入货日前一日
if (item.saleDate >= purchaseDate && item.saleDate <= endDate) {
console.log(item)
prSaleAmount += item.flowerAmount
prAbandonAmount += item.abandon
}
// 计算 入货日期 至 截止日期间的销售数、废弃数
if (item.saleDate >= receiptDate && item.saleDate <= saleDLDate) {
rsSaleAmount += item.flowerAmount
rsAbandonAmount += item.abandon
}
}
})
return {
prSaleAmount: prSaleAmount,
prAbandonAmount: prAbandonAmount,
rsSaleAmount: rsSaleAmount,
rsAbandonAmount: rsAbandonAmount
}
}
<!DOCTYPE html>
<html>
<head>
<title>Dayjs Example</title>
<script src="https://cdn.jsdelivr.net/npm/dayjs"></script>
</head>
<body>
</body>
</html>