Files
2026-01-12 16:01:32 +01:00

38 lines
1.0 KiB
JavaScript

const normalizeDate = (input) =>
typeof input?.toDate === 'function' ? input.toDate() : new Date(input)
const buildMonthKey = (timestamp) => {
const date = normalizeDate(timestamp)
const year = date.getUTCFullYear()
const month = String(date.getUTCMonth() + 1).padStart(2, '0')
return `${year}-${month}`
}
const buildPreviousMonthContext = (referenceDate) => {
const current = referenceDate ? new Date(referenceDate) : new Date()
current.setUTCHours(0, 0, 0, 0)
current.setUTCDate(1)
const target = new Date(current)
target.setUTCMonth(target.getUTCMonth() - 1)
const year = target.getUTCFullYear()
const monthIndex = target.getUTCMonth()
const rangeStart = new Date(Date.UTC(year, monthIndex, 1, 0, 0, 0, 0))
const rangeEnd = new Date(Date.UTC(year, monthIndex + 1, 0, 23, 59, 59, 999))
const monthKey = buildMonthKey(rangeStart)
return {
year,
month: monthIndex + 1,
monthKey,
rangeStart,
rangeEnd,
}
}
module.exports = {
buildMonthKey,
buildPreviousMonthContext,
}