Использование лучшей библиотеки дат в мире

Есть простой способ делать что-то, а есть трудный способ. Я из тех людей, которые предпочитают легкий путь. Обычно меньше кода для меня означает, что это легкий путь.

Если вы новичок в moment.js, то рекомендую его немного почитать ». Кроме того, вам нужно будет установить или импортировать в рабочее пространство moment.js.

Мы собираемся воспользоваться преимуществами двух простых функций, которые дает нам moment.js. Это функции .add() и .diff().

Вот краткая документация по их использованию.

.Добавить()

moment().add(Number, String);
moment().add(Duration);
moment().add(Object);

Функция принимает три разных формата параметров.

Число и строка

Число указывает количество единиц, а строка представляет тип единицы.

Продолжительность

Duration принимает объект длительности момента.

Объект

Объект формата {‘unit’: number}. Здесь вы можете указать несколько единиц.

Примеры того, как они используются:

moment().add(7, 'days’);
moment().add({ days:7, months:1 }); // with object literal
Const duration = moment.duration({'days' : 1});
moment().add(duration);

.diff ()

moment().diff(Moment|String|Number|Date|Array);
moment().diff(Moment|String|Number|Date|Array, String);
moment().diff(Moment|String|Number|Date|Array, String, Boolean);

Функция принимает три разных параметра, два из которых являются необязательными.

Первый параметр

Может быть одним из следующих: Moment, String, Number, Date, Array

Второй параметр

Строковое значение, представляющее значение для сравнения.

Третий параметр

Указывает, хотите ли вы разрешить значение floating-point в качестве возвращаемого значения (в противном случае оно будет округлено до ближайшего целого числа).

Примеры того, как они используются:

Const a = moment().add(2, ‘year’);
Const b = moment();
a.diff(b, 'years’); // returns 2
Const a = moment();
Const b = moment().add(1, 'seconds');
a.diff(b) // -1000
b.diff(a) // 1000

Давайте использовать их

Сгенерируйте массив лет:

const YEARS = () => {
 const years = []
 const dateStart = moment()
 const dateEnd = moment().add(10, 'y')
 while (dateEnd.diff(dateStart, 'years') >= 0) {
   years.push(dateStart.format('YYYY'))
   dateStart.add(1, 'year')
 }
 return years
}
console.log(YEARS())

Сгенерируйте массив месяцев:

const MONTHS = () => {
 const months = []
 const dateStart = moment()
 const dateEnd = moment().add(12, ‘month')
 while (dateEnd.diff(dateStart, ‘months') >= 0) {
  months.push(dateStart.format(‘M'))
  dateStart.add(1, ‘month')
 }
 return months
}
console.log(MONTHS())

Сгенерируйте массив дней:

const DAYS = () => {
 const days = []
 const dateStart = moment()
 const dateEnd = moment().add(30, ‘days')
 while (dateEnd.diff(dateStart, ‘days') >= 0) {
  days.push(dateStart.format(‘D'))
  dateStart.add(1, ‘days')
 }
 return days
}
console.log(DAYS())

Заключение

Надеюсь, вы нашли эту информацию полезной. Moment.js - действительно мощная библиотека, в которой есть много других интересных функций.

Ваше здоровье!