Awesome Open Source
Awesome Open Source
Tempe Logo

Featherlight (2kB) helper for Javascript date formatting

min min

Sometimes all you need is just a simple date formatting without all of those super powers.

Name is a play from tempus, Latin word meaning time and tempe an Indonesian traditional food.

📦 Install

$ yarn add tempe

 or

$ npm install tempe --save

💻 Usage

Use the default export, pass existing date object or you can initialize it like normal Javascript Date object.

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

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.

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.

// 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.


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (70,368
typescript (11,619
i18n (223
date (119