Относительное время в неделях не поддерживается в day.js

#javascript #dayjs

Вопрос:

Я только что переехал из moment.js чтобы day.js. Миграция была очень плавной, но day.js не предоставляет относительного времени в неделях. Что я делал в moment.js

        // Round relative time evaluation down
       moment.relativeTimeRounding(Math.floor);
       moment.relativeTimeThreshold('s', 60);
       moment.relativeTimeThreshold('m', 60);
       moment.relativeTimeThreshold('h', 24);
       moment.relativeTimeThreshold('d', 7);
       moment.relativeTimeThreshold('w', 4);
       moment.relativeTimeThreshold('M', 12);
 

Используя приведенную выше конфигурацию относительного времени, я получил желаемый результат, например 2 weeks ago .

После миграции в day.js, теперь моя конфигурация

     const thresholds = [
      { l: 's', r: 1 },
      { l: 'ss', r: 59, d: 'second' },
      { l: 'm', r: 1 },
      { l: 'mm', r: 59, d: 'minute' },
      { l: 'h', r: 1 },
      { l: 'hh', r: 23, d: 'hour' },
      { l: 'd', r: 1 },
      { l: 'dd', r: 6, d: 'day' },
      { l: 'w', r: 1},
      { l: 'ww', r: 4, d: 'week'},
      { l: 'M', r: 1 },
      { l: 'MM', r: 11, d: 'month' },
      { l: 'y', r: 1 },
      { l: 'yy', d: 'year' },
    ];

 

С приведенной выше конфигурацией в day.js Я получил следующую ошибку.

 core.js?7d7a:4073 ERROR TypeError: v is not a function
    at Object.n.fromToBase (VM15721 relativeTime.js:82)
    at i (VM15721 relativeTime.js:32)
    at M.n.from (VM15721 relativeTime.js:93)
    at M.n.fromNow (VM15721 relativeTime.js:103)

 

Когда я удалю

       { l: 'w', r: 1},
      { l: 'ww', r: 4, d: 'week'},
 

и измените дневной порог на 30,

от day.js конфигурация, затем она работает нормально, и я получил вывод типа 13 days ago .

Итак, мой вопрос в том, есть ли какой-либо обходной путь для получения выходных данных в неделях, а не в днях?

Комментарии:

1. Его называют days.js по какой-то причине 🙂