1.6.4 • Published 6 years ago
s-date v1.6.4
s-date
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