#momentjs
#momentjs
Вопрос:
Я заметил что-то странное и не смог найти никакой документации о том, как momentjs вычисляет месяцы назад.
Сегодня 2 октября 2016 года. Когда я вызываю следующие функции momentjs, я получаю
moment("20160617", "YYYYMMDD").fromNow();
"4 months ago"
moment("20160618", "YYYYMMDD").fromNow();
"3 months ago"
Может кто-нибудь, пожалуйста, объяснить мне, почему 17 июня — 4 месяца назад, а 18 июня — 3 месяца назад?
Ответ №1:
Мое лучшее предположение: это связано с диапазоном moment
, вычисляемым для каждой строки. Посмотрите на ключ для M, и это 25-45 дней. Таким образом, «один месяц» может длиться примерно на 15 дней больше, чем обычный месяц. Считая в обратном направлении, 18-е число месяца находится в пределах этого 15-дневного периода со 2-го числа следующего месяца. 17-й будет просто вне этого диапазона. Все это предполагает, что месяц равен «30 дням», что, по-видимому, moment делает для такого рода вычислений.
Комментарии:
1. Это правильно. github.com/moment/moment/blob/develop/min /… фактический коэффициент составляет 30,436875 дней в одном месяце.