Sha256: d09556f2c8b816ec66caacb0dcae78e0ceb2742707261ab23f2a3bcf77577280

Contents?: true

Size: 1.46 KB

Versions: 35

Compression:

Stored size: 1.46 KB

Contents

import { normalizeUnits } from '../units/aliases';

export function startOf (units) {
    units = normalizeUnits(units);
    // the following switch intentionally omits break keywords
    // to utilize falling through the cases.
    switch (units) {
        case 'year':
            this.month(0);
            /* falls through */
        case 'quarter':
        case 'month':
            this.date(1);
            /* falls through */
        case 'week':
        case 'isoWeek':
        case 'day':
        case 'date':
            this.hours(0);
            /* falls through */
        case 'hour':
            this.minutes(0);
            /* falls through */
        case 'minute':
            this.seconds(0);
            /* falls through */
        case 'second':
            this.milliseconds(0);
    }

    // weeks are a special case
    if (units === 'week') {
        this.weekday(0);
    }
    if (units === 'isoWeek') {
        this.isoWeekday(1);
    }

    // quarters are also special
    if (units === 'quarter') {
        this.month(Math.floor(this.month() / 3) * 3);
    }

    return this;
}

export function endOf (units) {
    units = normalizeUnits(units);
    if (units === undefined || units === 'millisecond') {
        return this;
    }

    // 'date' is an alias for 'day', so it should be considered as such.
    if (units === 'date') {
        units = 'day';
    }

    return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
}

Version data entries

35 entries across 34 versions & 6 rubygems

Version Path
card-1.100.0 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.99.6 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.99.5 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.99.4 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.99.3 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.99.2 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.99.1 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.99.0 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.98.3 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.98.2 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.98.1 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.98.0 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.97.0.1 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.97.0 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.96.8 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.96.7 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.96.6 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.96.5 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.96.4 mod/date/vendor/moment/src/lib/moment/start-end-of.js
card-1.96.3 mod/date/vendor/moment/src/lib/moment/start-end-of.js