aweary/tinytime
aweary/tinytime has 1,317 GitHub stars and 39 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 07:18 UTC. Last push 2023-01-12.
⏰ A straightforward date and time formatter in <1kb
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalTinytime ⏰
A straightforward date and time formatter in <800b.
API
tinytime exports a single function that returns a template object. This object has a single method, render, which
takes a Date and returns a string with the rendered data.
import tinytime from 'tinytime';
const template = tinytime('The time is {h}:{mm}:{ss}{a}.');
template.render(new Date());
// The time is 11:10:20PM.
Substitutions
MMMM- Full Month (September)MM- Partial Month (Sep)Mo- Numeric Month (9) 1YYYY- Full Year (1992)YY- Partial Year (92)dddd- Day of the Week (Monday)DD- Day of the Month (24)Do- Day (24th)h- Hours - 12h formatH- Hours - 24h formatmm- Minutes (zero padded)ss- Seconds (zero padded)a- AM/PM
1 - you get padded months (09 instead of 9) by passing in the padMonth option.
const template = tinytime('{Mo}', { padMonth: true })
Efficiency
tinytime takes an approach similar to a compiler and generates an AST representing your template. This AST is generated when
you call the main tinytime function. This lets you efficiently re-render your template without tinytime having to parse the
template string again. That means its important that you aren't recreating the template object frequently.
Here's an example showing the right and wrong way to use tinytime with React.
Don't do this:
function Time({ date }) {
return (
<div>
{tinytime('{h}:{mm}:{ss}{a}').render(date)}
</div>
)
}
Instead, only create the template object once, and just re-render it.
const template = tinytime('{h}:{mm}:{ss}{a}');
function Time({ date }) {
return (
<div>
{template.render(date)}
</div>
)
}
Babel Plugins
Using one of the plugins below, you can resolve this efficiency concern at compile time.
babel-plugin-transform-tinytime - Hoists tinytime calls out of the JSX render scope.
babel-plugin-tinytime - Hoists tinytime calls out of the current scope, regardless if its inside JSX or a ordinary function scope.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,910 starspublic-apis/public-apis
A collective list of free APIs
497,158 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
442,262 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,175 stars