Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/masbagal/tempe
Featherlight (< 2kB) helper for Javascript date formatting
https://github.com/masbagal/tempe
date date-formatting i18n javascript typescript
Last synced: 3 months ago
JSON representation
Featherlight (< 2kB) helper for Javascript date formatting
- Host: GitHub
- URL: https://github.com/masbagal/tempe
- Owner: masbagal
- License: mit
- Created: 2020-01-22T12:22:19.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T04:30:20.000Z (almost 2 years ago)
- Last Synced: 2024-07-08T16:48:43.249Z (4 months ago)
- Topics: date, date-formatting, i18n, javascript, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/tempe
- Size: 1000 KB
- Stars: 83
- Watchers: 5
- Forks: 4
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-made-by-indonesian - tempe - `Featherlight (< 2kB) helper for Javascript date formatting` *by [Dimitrij Agal](https://github.com/masbagal)* (T)
- oss - tempe - Featherlight helper for Javascript date formatting - i18n (Open Source Project / Utility)
- awesome-node-esm - tempe - Featherlight (< 2kB) helper for Javascript date formatting (Packages / Date)
- made-in-indonesia - tempe - `Featherlight (< 2kB) helper for Javascript date formatting` *by [Dimitrij Agal](https://github.com/masbagal)* (T)
README
> Featherlight (2kB) helper for Javascript date formatting
[![min](https://img.shields.io/bundlephobia/min/tempe)](https://bundlephobia.com/result?p=tempe) [![min](https://img.shields.io/bundlephobia/minzip/tempe)](https://bundlephobia.com/result?p=tempe)
Sometimes all you need is just a simple date formatting without all of those super powers.
Name is a play from [tempus](https://en.wikipedia.org/wiki/Tempus), Latin word meaning time and [tempe](https://en.wikipedia.org/wiki/Tempeh) an Indonesian traditional food.
## 📦 Install
```
$ yarn add tempeor
$ npm install tempe --save
```## 💻 Usage
Use the default export, pass existing date object or you can initialize it like normal Javascript Date object.```js
import tempe from 'tempe';// use tempe as Date initializer
tempe(2020, 0, 13).format('dd, DD MMM YYYY'); // "Monday, 13 Jan 2020"// pass existing Date object to tempe
tempe(new Date(2020, 0, 13)).format('dd, DD MMM YYYY'); // "Monday, 13 Jan 2020"// time formatting
tempe(2020, 2, 25, 23, 59).format('DD MMMM YYYY hh:mm:ss'); // "25 March 2020 23:59:00"
tempe(2020, 2, 25, 23, 59).format('H at DD/MM/YYYY'); // "11 PM at 25/03/2020"```
## 🌐 i18n
Tempe supports internationalization by specifying the locale while formatting```js
import tempe from 'tempe';tempe(2020, 5, 13).format('DD MMM YYYY', 'ja'); // "13日 6月 2020年"
tempe(2020, 5, 13).format('DD MMM YYYY', 'vi'); // "13 Tháng 6 2020"
tempe(2020, 5, 13).format('DD MMM YYYY', 'id'); // "13 Juni 2020"```
### Calendar Types
Meanwhile, some locale have their own default calendar type. For example, if you're using a Thailand locale it will generate a Buddhist calendar that show a different year than standard gregorian calendar.
```js
tempe(2020, 5, 13).format('DD MMM YYYY', 'th'); // 13 มิถุนายน พ.ศ. 2563
```You can change it by providing the calendar type in the third optional parameter of `format()` function.
```js
// change calendar type to gregorian
tempe(2020, 5, 13).format('DD MMM YYYY', 'th', 'gregory' ); // 13 มิถุนายน พ.ศ. 2020// change calendar type to islamic
tempe(2020, 5, 13).format('DD MMM YYYY', 'id', 'islamic' ); // 22 Syawal 1441 H```
Possible values for this parameter includes:
- `"buddhist"`
- `"chinese"`
- `"coptic"`
- `"ethiopia"`
- `"ethiopic"`
- `"gregory"`
- `"hebrew"`
- `"indian"`
- `"islamic"`
- `"iso8601"`
- `"japanese"`
- `"persian"`
- `"roc"`This is an optional parameter. By leaving this parameter empty, the date will be generated using the default type of provided locale.
## 📝 List of all available formats
| Format | Output | Description |
| ------ | ---------------- | ------------------------------------- |
| `YY` | 18 | Two-digit year |
| `YYYY` | 2018 | Four-digit year |
| `M` | 1-12 | The month, beginning at 1 |
| `MM` | 01-12 | The month, 2-digits |
| `MMM` | Jan-Dec | The abbreviated month name |
| `MMMM` | January-December | The full month name |
| `D` | 1-31 | The day of the month |
| `DD` | 01-31 | The day of the month, 2-digits |
| `dd` | Sun-Sat | The short name of the day of the week |
| `ddd` | Sunday-Saturday | The name of the day of the week |
| `H` | 0-23 AM/PM | The hour with AM/PM |
| `HH` | 0-23 AM/PM | The hour with AM/PM |
| `h` | 01-12 | The hour, 12-hour clock |
| `hh` | 01-12 | The hour, 12-hour clock |
| `m` | 0-59 | The minute |
| `mm` | 00-59 | The minute, 2-digits |
| `s` | 0-59 | The second |
| `ss` | 00-59 | The second, 2-digits |---
This project was bootstrapped with [TSDX](https://github.com/jaredpalmer/tsdx).