9147b0bdd294289b390a520d6606e26cd20ae557900acceec4ab73f68925a33384123c09b5d5129c9213796cebd05ad8a27050701b6b4602b6597b369ccc56 890 B

123456789101112131415161718192021
  1. import { createLocal } from '../create/local';
  2. import { cloneWithOffset } from '../units/offset';
  3. import isFunction from '../utils/is-function';
  4. export function calendar (time, formats) {
  5. // We want to compare the start of today, vs this.
  6. // Getting start-of-today depends on whether we're local/utc/offset or not.
  7. var now = time || createLocal(),
  8. sod = cloneWithOffset(now, this).startOf('day'),
  9. diff = this.diff(sod, 'days', true),
  10. format = diff < -6 ? 'sameElse' :
  11. diff < -1 ? 'lastWeek' :
  12. diff < 0 ? 'lastDay' :
  13. diff < 1 ? 'sameDay' :
  14. diff < 2 ? 'nextDay' :
  15. diff < 7 ? 'nextWeek' : 'sameElse';
  16. var output = formats && (isFunction(formats[format]) ? formats[format]() : formats[format]);
  17. return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
  18. }