Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

s-date

Tiny date/time formatter

date, time, format

readme

s-date

NPM version Dependencies build status NPM license

Same general purpose as moment.js, but in ~1kb minified.

This CommonJS module exports a single function that takes two parameters. The first is a format string, the second is an optional Date. If the date is omitted, it defaults to new Date();.

If you don't need full customizability for your date string, you probably don't need this library. Just use Date.toLocaleDateString() and related methods.

Usage

var date = require('s-date');

var myBirthday = new Date(1994, 10, 7);
date('{mm}/{dd}/{yyyy}', myBirthday); // '11/07/1994'

Formatting options

Example: For January 2, 2053 4:30pm + 45 seconds

String template Output example Meaning
{yyyy} 2053 4-digit year
{yy} 53 2-digit year
{mm} 01 2-digit month
{m} 1 unpadded month
{Month} January month name
{Mo} Jan month shortname
{d} 2 date
{ds} 2nd date + suffix
{dd} 02 2-digit date
{Weekday} Thursday day of the week
{Day} Thu day shortname
{Dy} Th day shortername
{D} T 1-char day name
{h24} 16 unpadded hours (24)
{hh24} 16 hours (24)
{hh} 04 hours (12)
{h} 4 unpadded hours (12)
{ampm} pm am/pm
{AMPM} PM AM/PM
{Minutes} 30 Minutes (padded)
{Seconds} 45 Seconds (padded)

To output the example above...

// Date(year, month-1, date, hours, minutes, seconds)
var someDay = new Date(2053, 0, 2, 4, 30, 45);
date('{Month} {d}, {yyyy} {h}:{Minutes}{ampm} + {Seconds} seconds', someDay);

Benchmarks

Run using benchmark.js on 2.3GHz Macbook Pro

s-date    x 428,936 ops/sec ±2.29% (79 runs sampled)
moment    x 271,963 ops/sec ±1.34% (85 runs sampled)
date-fns  x 196,827 ops/sec ±1.17% (80 runs sampled)
dayjs     x 121,425 ops/sec ±1.99% (87 runs sampled)
luxon     x 90,782 ops/sec ±1.13% (83 runs sampled)
Fastest is s-date