Рубрики
Без рубрики

Datetime.js – синтаксис сахар и не только …

Всем привет! Я хотел бы представить вам свой собственный взгляд на организацию синтаксического сахара для работы … Tagged с JavaScript, Datetime, SyntaxSugar.

Всем привет! Я хотел бы представить вам свой собственный взгляд на организацию синтаксического сахара для работы с датой и временем в JavaScript – DateTime.js Анкет

DateTime.js является минималистской библиотекой JavaScript, которая анализирует, проверяет, манипулирует и отображает даты и время для современных браузеров с удобным современным API.

  • 🕒 Быстро и точно
  • 💪 Неизменные/изменчивые моды
  • 🔥 цепно
  • 🌐 Поддержка I18N
  • 📦 мини -библиотека 4 КБ
  • 👫 Все браузеры поддерживают

API

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

Разбор

datetime();
datetime("2020");
datetime("2020-12-31");
datetime("2020-12-31 23:59");
datetime(2020, 12, 31, 23, 59);
datetime([2020, 12, 31, 23, 59]);
Datetime.parse(...);
Datetime.fromString("16 November 1961 15:24", "dd mm %y h:i", "en")
Datetime.fromString("16 Ноября 1961 15:24", "dd mm %y h:i", "ru")

Неизменная/изменчивая

По умолчанию объект DateTime является изменчивым. Но вы можете создать Необычный переменная с методом неизменный :

var immutableDate = datetime('2020-12-21').immutable();
console.log(immutableDate); // 2020-12-21
console.log(immutableDate.add(1, 'month')); // 2021-01-21 this is a new object
console.log(immutableDate); // 2020-12-21

Отображать

datetime().format('{YYYY} MM-DDTHH:mm:ss sss Z A');
datetime().strftime('{%Y} %n-%dT%H:%M:%S %Q %z %p');

Получить набор

Вы можете установить и получить: миллисекунд , Второй , минута , час В день , месяц , год , время (TimeStamp), …

datetime().set('month', 3).month();
datetime().month(3).month();

Манипулировать

Вы можете установить: миллисекунд , Второй , минута , час В день , месяц , год Анкет

datetime().add(3, 'day').add(1, 'hour');
datetime().addDay(3).addHour(1);

Выровнять (начинать из)

Вы можете выравнивать дату: миллисекунд , Второй , минута , час В день , месяц , год , четверть , неделю , isoweek Анкет

datetime().align("year"); // Will alignment to 1st Jan of year
datetime().align("month"); // Will alignment to 1st day of month

Сравнивать

datetime("2020").older("2021"); // return true
datetime("2020").younger("1972"); // return true
datetime("2020").between("2019", "2021"); // return true
datetime("2020-21-12").diff("1972-21-12"); // return {day: 17532, hour: 420768, millisecond: 1514764800000, minute: 25246080, month: 576, second: 1514764800, year: 48}
datetime("2020-21-12").distance("1972-21-12", "year"); // return 48

Информация

Вы можете получить другую дополнительную информацию о вашей дате: Подсчета дней в месяце , Считайте дни в году , Количество четверть , Год прыгает , …

datetime("2020-12-21").dayOfYear(); // return 356
datetime("2020-02-01").daysInMonth(); // return 29
datetime("2020-02-01").quarter(); // return 1
datetime("2020").isLeapYear(); // return true

i18n

DateTime имеет большую поддержку для интернационализации. По умолчанию DateTime включает только Английский локаль. Вы можете включить много других:

В HTML



Для Nodejs или использования с WebPack или Modern JS

import "@olton/datetime";
import "@olton/i18n/ru";

С местами:

Datetime.fromString("16 Ноября 1961 15:24", "dd mm %y h:i", "ru");
datetime().useLocale('ru').format("DD MMM YYYY"); // 03 Дек 2020

Плагины

Вы можете создать плагин и зарегистрировать его функциями DateTime.use () и Datetime.usestatic () :

Создать плагин

(function(global) {
    'use strict';

    Datetime.use({
        prototypeTest: function(val){
            return 0 === val || val ? val : "test";
        }
    });

    Datetime.useStatic({
        staticTest: function(val){
            return 0 === val || val ? val : "static test";
        }
    });
}());

Включите плагин в страницу после DateTime.js :



А теперь используйте плагин:


console.log(datetime().prototypeTest());
console.log(datetime().prototypeTest(123));


console.log(Datetime.staticTest());
console.log(Datetime.staticTest(456));

DateTime лицензируется в рамках MIT Лицензия Анкет

Оригинал: “https://dev.to/olton/datetime-js-syntax-sugar-and-not-only-2adb”