a93ed6639b3ba5eed3857cfd5cdc7b765885c5170e20336c241beebf1c8e7062295fb24b3ee75f660edbfcc59dd153b36302a27be7799ebac96e4244d6b30e 2.3 KB

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