⏰ A straightforward date and time formatter in <1kb
⏰ A straightforward date and time formatter in <1kb
A straightforward date and time formatter in 1
YYYY - 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 })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 (
)
}Instead, only create the template object once, and just re-render it.
const template = tinytime('{h}:{mm}:{ss}{a}');
function Time({ date }) {
return (
)
}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.
No open issues yet, or sync has not completed.