Библиотека moment.js. Работа с форматами

Библиотека moment.js. Работа с форматами

Как вы поняли из прошлой статьи про диапазоны дат, что в нативном JavaScript неудобно работать с форматами дат. Поэтому и была разработана библиотека moment.js. Данная библиотека предлагает очень удобную работу с различными форматами дат в отличии от стандартного подхода в JavaScript.

Установка библиотеки moment.js

Для тех, кто ещё не знает, как пользоваться различными пакетными менеджерами, можно библиотеку скачать с официального сайта, как обычный zip-архив. Для более продвинутых пользователей, предлагается инсталляция библиотеки путем ввода команды через терминал редактора кода. Мы рассмотрим установку на связке Visual Code + пакетный менеджер npm. Откройте вкладку Terminal в вашем проекте и введите команду.


npm install moment --save

Подключение библиотеки moment.js

Пакетный менеджер npm сам скачает и распакует библиотеку moment.js в ваш проект, в результате у вас появится папка node_modules, внутри которой лежит папка moment. Находим там файл moment.min.js и правильно прописываем путь до этого файла.


<script src="node_modules/moment/min/moment.min.js"></script>

Работа с библиотекой

Чтобы просто вызвать библиотеку moment.js достаточно в js файле прописать следующий код.


console.log(moment());

В консоли мы видим нечто странное, пугаться этого не нужно, так и должно быть.

Библиотека moment.js. Работа с форматами

Данная конструкция возвращает нам текущую дату в более читаемом виде.


console.log(moment().format()); // 2020-11-12T14:14:07+02:00

В разделе документации можно найти массу примеров, как выводить дату в нужном вам формате. Для этого в функцию format() передадим строку, которая может быть сформирована из огромного числа параметров, на ваш выбор. Например, мы хотим вывести дату в привычном для нас виде: 12.11.2020. Все данные содержаться в документации:

  • YYYY — год
  • MM — месяц
  • DD -день

  • console.log(moment().format('DD.MM.YYYY'));

    Библиотека moment.js. Работа с форматами

    В консоли вывелась дата, которую мы и хотели получить. Если вместо точек в качестве разделителей использовать косые линии, то мы получим дату в таком формате.


    console.log(moment().format('DD/MM/YYYY')); // 12/11/2020

    Вполне логично, что библиотека выводит только английские названия месяца.


    console.log(moment().format('12 MMM YYYY')); // 12 Nov 2020

    Локализация

    Для локализации выводимых форматов, нужно подключить другой js файл. Это значит, что данная библиотека будет включать в себя большее количество локализаций (разные языки).


    <script src="node_modules/moment/min/moment-with-locales.min.js"></script>

    Указав нужный язык, библиотека выдаст дату уже на местном языке.


    moment.locale('ru')

    console.log(moment().format('12 MMM YYYY')); // 12 нояб. 2020

    Вывод заданной даты

    Помимо получения текущей даты, мы можем сами задавать нужную для вывода дату. Сначала передадим в функцию moment() желаемую дату и зададим нужный формат для вывода.


    moment.locale('ru')

    console.log(moment('25/12/2021', 'DD.MM.YYYY').format('25 MMM YYYY')); // 25 дек. 2021

    Так же есть возможность задавать определенную дату через объект Date. При задании месяца нужно учитывать, что в программировании отсчет ведется с нуля. Поэтому, если нам надо вывести декабрь, то мы указываем число 11, мысленно прибавляя единицу.


    let date = {

        years: 2000,

        months: 11,

        days: 25

    };

    console.log(moment(date).format('DD.MM.YYYY')); // 25.12.2000

    Манипуляции с датами

    Мы передаем в функцию get() какой-нибудь ключ и получаем в консоли его текущее значение.


    let format = 'DD.MM.YYYY';

        console.log(moment().get('year')); // 2020

    В функции set() можно устанавливать и выводить собственное значение.


    let format = 'DD.MM.YYYY';
        console.log(moment().set('M','5').set('date','10').format(format)); // 10.06.2020

    Функция add() прибавляет заданное число к текущей дате. Функция subtract() действует противоположным образом, вычитает переданные числа из текущей даты.


    let format = 'DD.MM.YYYY';

    let m = moment();

    console.log(m.add({

        d: 3,

        M: 1,

        y: 1

    }).format(format)); // 16.12.21

    Источник

    Просмотров:

    Добавить комментарий

    Adblock
    detector