time-js

0.0.5 • Public • Published

time.js

Parses time input with no relation to dates, with the option to convert to the next immediate corresponding Date.

Built for Promt, to solve this problem.

Browser

$ bower install time-js # or just manually download time.js
<script src="component/time-js/time.js"></script>
var t = Time('2p');
t.hours();             // 2
t.minutes();           // 0
t.period();            // 'pm'
t.toString();          // '2:00 pm'
t.nextDate();          // Sep 10 2:00 (assuming it is 1 o'clock Sep 10)
t.format('hh:mm AM')   // '02:00 PM'
t.isValid();           // true
Time.isValid('99:12'); // false

Node

$ npm install time-js
var time = require('time-js');
time('2');
// you get the idea, or see below for more ideas

Examples

Some example uses can be viewed in examples.html.

Parses strings such as "8:20" into a Date-less Time.

new Time('1')    // 1:00
new Time('1:23') // 1:23

If you fancy it, you can use safely drop the 'new'.

Time('1.23') // 1:23
Time('123')  // 1:23

am/pm can optionally be specified.

Time('8:30 pm') // 8:30 pm
Time('3p')      // 3:00 pm
Time('3 A.M.')  // 3:00 am

Converts Time into the next corresponding JavaScript Date.

// assume it's 3:15 pm Aug 10
Time('415').nextDate()  // 4:15 pm Aug 10
Time('2').nextDate()    // 2:00 am Aug 11
Time('2 pm').nextDate() // 2:00 pm Aug 11

Does validation statically...

Time.isValid('8:00')  // true
Time.isValid('12:60') // false
Time.isValid('13:23') // false

... or after construction.

Time('1').isValid()      // true
Time('12.0').isValid()   // false
Time('12:202').isValid() // false

There's basic formatting

Time('2:30p').format('hh:mm A'); // '02:30 P'
Time('12 am').format('h: p');    // '12 a'
Time('220 a').format('h: p');    // '2:20 a'
Time('7').format('h: p');        // '7'

Accepts numbers too.

Time(1).isValid() // true

Military time is not supported, but may be in the future (or not).

Test

$ npm test

Package Sidebar

Install

npm i time-js

Weekly Downloads

4

Version

0.0.5

License

MIT

Last publish

Collaborators

  • zever