smd

Represent dates as tiny numbers, losing precision, for compact storage.

Usage no npm install needed!

<script type="module">
  import smd from 'https://cdn.skypack.dev/smd';
</script>

README

smd - Small Dates Build Status

Represents dates as 3-bytes in msgpack. We assume dates after 1970, and reasonably close to 'now'. Their best use is for fairly short-lived expiration dates (months), which don't require incredible precision (nearest hour or nearest minute is fine). These constraints yield a compression of around 66%, which is fantastic for the intended uses.

Examples

var SmD = require('smd');

var s = SmD.now();
// => 53391
var l = SmD.at(s);
// => 1371855692507
var d = SmD.date(s);
// => Fri Jun 21 2013 19:01:32 GMT-0400 (EDT)
var SmD = require('smd')
  , msg = require('msgpack');

var d = Date.now();
// => 1371855692507
var s = SmD.at(d);
// => 53391

msg.pack(d);
// => <SlowBuffer cb 42 73 f6 8f 8a 2d b0 00>
msg.pack(r);
// => Pack <SlowBuffer cd d0 8f>

License

MIT. See LICENSE for details.