/node_modules/moment/src/lib/moment/compare.js

https://bitbucket.org/coleman333/smartsite · JavaScript · 59 lines · 53 code · 6 blank · 0 comment · 17 complexity · 82d031746e060a847112b5d7244e0d6d MD5 · raw file

  1. import { isMoment } from './constructor';
  2. import { normalizeUnits } from '../units/aliases';
  3. import { createLocal } from '../create/local';
  4. import isUndefined from '../utils/is-undefined';
  5. export function isAfter (input, units) {
  6. var localInput = isMoment(input) ? input : createLocal(input);
  7. if (!(this.isValid() && localInput.isValid())) {
  8. return false;
  9. }
  10. units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
  11. if (units === 'millisecond') {
  12. return this.valueOf() > localInput.valueOf();
  13. } else {
  14. return localInput.valueOf() < this.clone().startOf(units).valueOf();
  15. }
  16. }
  17. export function isBefore (input, units) {
  18. var localInput = isMoment(input) ? input : createLocal(input);
  19. if (!(this.isValid() && localInput.isValid())) {
  20. return false;
  21. }
  22. units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
  23. if (units === 'millisecond') {
  24. return this.valueOf() < localInput.valueOf();
  25. } else {
  26. return this.clone().endOf(units).valueOf() < localInput.valueOf();
  27. }
  28. }
  29. export function isBetween (from, to, units, inclusivity) {
  30. inclusivity = inclusivity || '()';
  31. return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
  32. (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
  33. }
  34. export function isSame (input, units) {
  35. var localInput = isMoment(input) ? input : createLocal(input),
  36. inputMs;
  37. if (!(this.isValid() && localInput.isValid())) {
  38. return false;
  39. }
  40. units = normalizeUnits(units || 'millisecond');
  41. if (units === 'millisecond') {
  42. return this.valueOf() === localInput.valueOf();
  43. } else {
  44. inputMs = localInput.valueOf();
  45. return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
  46. }
  47. }
  48. export function isSameOrAfter (input, units) {
  49. return this.isSame(input, units) || this.isAfter(input,units);
  50. }
  51. export function isSameOrBefore (input, units) {
  52. return this.isSame(input, units) || this.isBefore(input,units);
  53. }