Всем привет! Я хотел бы представить вам свой собственный взгляд на организацию синтаксического сахара для работы с датой и временем в 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”