1 import { isMoment } from './constructor';
2 import { normalizeUnits } from '../units/aliases';
3 import { createLocal } from '../create/local';
4 import isUndefined from '../utils/is-undefined';
6 export function isAfter (input, units) {
7 var localInput = isMoment(input) ? input : createLocal(input);
8 if (!(this.isValid() && localInput.isValid())) {
11 units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
12 if (units === 'millisecond') {
13 return this.valueOf() > localInput.valueOf();
15 return localInput.valueOf() < this.clone().startOf(units).valueOf();
19 export function isBefore (input, units) {
20 var localInput = isMoment(input) ? input : createLocal(input);
21 if (!(this.isValid() && localInput.isValid())) {
24 units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
25 if (units === 'millisecond') {
26 return this.valueOf() < localInput.valueOf();
28 return this.clone().endOf(units).valueOf() < localInput.valueOf();
32 export function isBetween (from, to, units, inclusivity) {
33 inclusivity = inclusivity || '()';
34 return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
35 (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
38 export function isSame (input, units) {
39 var localInput = isMoment(input) ? input : createLocal(input),
41 if (!(this.isValid() && localInput.isValid())) {
44 units = normalizeUnits(units || 'millisecond');
45 if (units === 'millisecond') {
46 return this.valueOf() === localInput.valueOf();
48 inputMs = localInput.valueOf();
49 return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
53 export function isSameOrAfter (input, units) {
54 return this.isSame(input, units) || this.isAfter(input,units);
57 export function isSameOrBefore (input, units) {
58 return this.isSame(input, units) || this.isBefore(input,units);