UNPKG

@onesy/date

Version:

Time and date utils library

36 lines (27 loc) 1.17 kB
import OnesyDate from './OnesyDate'; import remove from './remove'; export default function startOf() { let onesyDate_ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : OnesyDate.onesyDate; let unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'day'; if (onesyDate_ && onesyDate_.valid) { const onesyDate = new OnesyDate(onesyDate_); switch (unit) { case 'second': return new OnesyDate(onesyDate.value.setMilliseconds(0)); case 'minute': return new OnesyDate(onesyDate.value.setSeconds(0, 0)); case 'hour': return new OnesyDate(onesyDate.value.setMinutes(0, 0, 0)); case 'day': return new OnesyDate(onesyDate.value.setHours(0, 0, 0, 0)); case 'week': return new OnesyDate(startOf(remove((onesyDate.dayWeek === 0 ? 7 : onesyDate.dayWeek) - 1, 'day', onesyDate), 'day')); case 'month': return new OnesyDate(new Date(onesyDate.value.setDate(1)).setHours(0, 0, 0, 0)); case 'year': return new OnesyDate(new Date(onesyDate.value.setMonth(0, 1)).setHours(0, 0, 0, 0)); default: break; } } }