获取月数

获取多条列表之间的月数

const billList = [{itemId:'3cyuu8',billStartDate:'2018-09-12',billEndDate:'2018-09-22'},{itemId:'3cyuu8',billStartDate:'2018-09-15',billEndDate:'2018-09-30'},{itemId:'3cyuu8',billStartDate:'2018-10-01',billEndDate:'2018-10-30'}]
const moment = require('moment')

function getMonthCountByItemId (itemId) {
	let useBillList = billList.filter(item => item.itemId === itemId)

	return useBillList.reduce((monthCount, item) => {
		let start = moment(item.billStartDate)
		let end = moment(item.billEndDate)
		console.log(item.billStartDate, item.billEndDate)

		do {
			console.log(start.format('YYYY-MM-DD'))
			let inAMonth = (start.year() === end.year() && start.month() === end.month())
			if (inAMonth) {
				console.log('count', (end.diff(start, 'day') + 1) / start.daysInMonth())
				monthCount += (end.diff(start, 'day') + 1) / start.daysInMonth()
				break
			} else {
				let daysToMonthEnd = start.daysInMonth() - start.date() + 1
				console.log('count', daysToMonthEnd / start.daysInMonth())
				monthCount += daysToMonthEnd / start.daysInMonth()
				start.add(daysToMonthEnd, 'day')
			}
		} while (start.isBefore(end))
		return monthCount
	}, 0)
}

console.log(getMonthCountByItemId('ec48ab69-b5f0-4066-b855-4608638cab2a'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值