https://github.com/gravity-ui/date-utils
Helpers to manage work with dates.
https://github.com/gravity-ui/date-utils
Last synced: 4 months ago
JSON representation
Helpers to manage work with dates.
- Host: GitHub
- URL: https://github.com/gravity-ui/date-utils
- Owner: gravity-ui
- License: mit
- Created: 2023-01-13T15:11:21.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-21T11:18:22.000Z (over 1 year ago)
- Last Synced: 2024-11-25T16:32:10.278Z (over 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 579 KB
- Stars: 11
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README-ru.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# @gravity-ui/date-utils
Утилиты для управления датой и временем.
## Установка
```shell
npm i @gravity-ui/date-utils
```
## Использование
```typescript
import {dateTimeParse, dateTime} from '@gravity-ui/date-utils';
// Current date: 2021-08-07T12:10:00
// User's time zone: Europe/Istanbul
const FORMAT = 'YYYY-MM-DDTHH:mm:ssZ';
// parse absolute date
dateTimeParse({year: 2021, month: 7, day: 7})?.format(FORMAT); // "2021-08-07T00:00:00+03:00"
dateTimeParse([2021, 7, 7])?.format(FORMAT); // "2021-08-07T00:00:00+03:00"
dateTimeParse('2021-08-07')?.format(FORMAT); // "2021-08-07T00:00:00+03:00"
dateTimeParse(1621708204063)?.format(FORMAT); // "2021-05-22T21:30:04+03:00"
dateTimeParse('')?.format(FORMAT); // undefined
dateTimeParse('incorrect-date')?.format(FORMAT); // undefined
// parse relative date
dateTimeParse('now')?.format(FORMAT); // "2021-08-07T12:10:00+03:00"
dateTimeParse('now-1d')?.format(FORMAT); // "2021-08-06T12:10:00+03:00"
dateTimeParse('now-1d+1M')?.format(FORMAT); // "2021-09-06T12:10:00+03:00"
dateTimeParse('now/d')?.format(FORMAT); // "2021-08-07T00:00:00+03:00"
dateTimeParse('now+1d/d')?.format(FORMAT); // "2021-08-08T00:00:00+03:00"
dateTimeParse('now-1f')?.format(FORMAT); // undefined
// create dateTime
dateTime().format(FORMAT); // "2021-08-07T12:10:00+03:00"
dateTime({input: '2021-08-07'}).format(FORMAT); // "2021-08-07T00:00:00+03:00"
dateTime({input: '2021-08-07', format: 'YYYY-MM-DD'}).format(FORMAT); // "2021-08-07T00:00:00+03:00"
dateTime({timeZone: 'Asia/Tokyo'}).format(FORMAT); // "2021-08-07T18:10:00+09:00
dateTime({input: ''}).format(FORMAT); // "Invalid Date"
dateTime({input: '2021-08', format: 'YYYY-MM-DD'}).format(FORMAT); // "Invalid Date"
```
## Настройки
```typescript
import {settings} from '@gravity-ui/date-utils';
// Locales management
settings.getLocale(); // default locale "en"
settings.loadLocale('de').then(() => {
settings.setLocale('de');
settings.getLocale(); // "de"
});
// Customization
settings.updateLocale({weekStart: 0}); // change first day of week
```