2013-08-22 4 views
0

Учитывая этот код:Получение результата от moment.js сравнение/с/fromNow в течение нескольких недель, а не дни

var now = moment(); 
now.day("Tuesday"); 
var displayed_week_day = moment(); 
var one_week = moment.duration(1, 'weeks'); 
displayed_week_day.day("Tuesday"); 
displayed_week_day.add(one_week); 
console.log(displayed_week_day.from(now)); 
displayed_week_day.add(one_week); 
console.log(displayed_week_day.from(now)); 

Выход:

in 7 days 
in 14 days 

Документы приведут меня к мысли, что это будет выводиться как «через 1 неделю» или «через 2 недели». Я не вижу способа передать аргумент, чтобы сделать это.

Здесь был вопрос с более ранним стеком: How to get duration in weeks with Moment.js?, но этот ответ довольно старый и, похоже, не применим к текущим версиям момента .js. У кого-нибудь есть мысли о том, как изменить выходной формат этого?

ответ

1

Фактически, в документах говорится, что от 22 до 25 дней представлено в виде дней. (> = 22 & & < 36 часов округляются до одного дня,> = 36 часов округляются до 2-х дней)

Смотрите таблицу в разделе Time from now.

Была запрошена возможность настройки этих диапазонов и является open issue here.

+0

Итак, есть способ сделать это, но вам нужно вручную изменить диапазоны в файле moment.js? – Max

+0

Да, вам нужно будет заменить функцию relativeTime в вашей собственной копии исходного кода –

+0

Не уверен, хотите ли вы обновить свой ответ, чтобы показать, как это сделать/где это сделать? Если это так, я буду отмечать ваш ответ как принятый. В противном случае я могу ответить на эту информацию. Благодаря! – Max

Смежные вопросы