UNPKG

@modern-kit/utils

Version:
44 lines (40 loc) 1.52 kB
'use strict'; var dateParseDate = require('../parseDate/index.cjs'); require('../parseDateString/index.cjs'); function getDateStartOf(date, unit) { const parsedDate = dateParseDate.parseDate(date); const isUTC = unit.startsWith("utc"); const baseUnit = isUTC ? unit.slice(3).toLowerCase() : unit; const year = isUTC ? parsedDate.getUTCFullYear() : parsedDate.getFullYear(); const month = isUTC ? parsedDate.getUTCMonth() : parsedDate.getMonth(); const day = isUTC ? parsedDate.getUTCDate() : parsedDate.getDate(); switch (baseUnit) { case "year": if (isUTC) { return new Date(Date.UTC(year, 0, 1, 0, 0, 0, 0)); } return new Date(year, 0, 1, 0, 0, 0, 0); case "month": if (isUTC) { return new Date(Date.UTC(year, month, 1, 0, 0, 0, 0)); } return new Date(year, month, 1, 0, 0, 0, 0); case "week": { const dayOfWeek = isUTC ? parsedDate.getUTCDay() : parsedDate.getDay(); const startOfWeek = day - dayOfWeek; if (isUTC) { return new Date(Date.UTC(year, month, startOfWeek, 0, 0, 0, 0)); } return new Date(year, month, startOfWeek, 0, 0, 0, 0); } case "date": if (isUTC) { return new Date(Date.UTC(year, month, day, 0, 0, 0, 0)); } return new Date(year, month, day, 0, 0, 0, 0); default: throw new Error(`\uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uB2E8\uC704\uC785\uB2C8\uB2E4`); } } exports.getDateStartOf = getDateStartOf; //# sourceMappingURL=index.cjs.map