easy-ms

1.0.1 • Public • Published

easy-ms

Build Status npm version Dependency status Downloads Donate

Easy and human friendly millisecond implementation that you will definitely love it

Installation

$ npm install --save easy-ms

Usage

It's easy and versatile. Below show examples of how to return 90,000 milliseconds.

var ms = require('easy-ms');
 
//the simple
ms(90000) // ms(ms)
ms(90, 0) // ms(s, ms)
ms(1, 30, 0) // ms(m, s, ms)
ms(0, 1, 30, 0) // ms(h, m, s, ms)
ms(0, 0, 1, 30, 0) // ms(d, h, m, s, ms)
ms(0, 0, 0, 1, 30, 0) // ms(y, d, h, m, s, ms)
ms(0, 0, 0.025, 0, 0, 0) // ms(y, d, h, m, s, ms)
 
//with string as well
ms('1m 30s') //1 minute 30 second
ms('1minute 30s') //1 minute 30 second
ms('1 min 30 sec') //1 minute 30 second
ms('1.5 min') //1 minute 30 second
 
//with object if you like it this way
ms({minute: 1, second: 30})
ms({min: 1, seconds: 30})
ms({m: 1, s: 30})
ms({m: 0.5, minute: 0.5, second: 15, s: 15}) //I don't know why you want to do it this way, but it is absolutely fine
 
//chain-able
ms('1m')
    .second(30)
ms(30, 0)
    .m(1)
ms({ms: 1000})
    .second(29)
    .m('1')
 
//chain-add
ms('1m')
    .s(5)               //chain 5 seconds
    .add('10 seconds')  //you still remember of using strings?
    .add({s: 5})        //or objects
    .add(5, 0)          //or just numbers?
    .second(5)          //it all works
 
//chain minus
ms('2m')
    .s(5)                 
    .minus('20 seconds')  //maybe you like to minus of some time
    .sub({s: 10})         //or sub?
    .subtract(10, 0)      //or subtract?
    .second(5)            //it's up to you.

We wish we could accept anything to be passed into easy-ms.

But below is a list of what does not work. They will return NaN

ms('1m').second('abc')
ms('1b').hour(5)
ms({m: 'foo'})

Inspiration

Inspired by ms and to-ms.

But do more than both combined.

Caveat

The value returned by the function ms(...) is monkey patched Number. It might created some unwanted behaviors.

var ms = require('easy-ms');
var val = ms(1000); //1000 millisecond
 
//It is not strictly equal
val == 1000; //return true
val === 1000; //return false
 
//To circumvent this, use Number(...)
Number(val) === 1000; //return true;
(val + 0) === 1000;  //return true, but not recommended
 
//It might print more than you expected in console.log
console.log(a);
/*
return 
{ [Number: 1000]
  year: [Function: bound addTime],
  yrs: [Function: bound addTime],
  yr: [Function: bound addTime],
  ...
*/
console.log(Number(100));
//return 1000
 
//It works fine in strings
str = 'wait for ' + val; // 'wait for 1000'
str = `wait for ${val}`; // 'wait for 1000'

License

MIT

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.1
    4
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.1
    4
  • 1.0.0
    0
  • 0.0.0
    0

Package Sidebar

Install

npm i easy-ms

Weekly Downloads

4

Version

1.0.1

License

MIT

Last publish

Collaborators

  • tanhauhau