time-js
v0.0.5
Published
date-agnostic time parsing for node and the browser
Maintainers
Readme
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'); // falseNode
$ npm install time-jsvar time = require('time-js');
time('2');
// you get the idea, or see below for more ideasExamples
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:23If you fancy it, you can use safely drop the 'new'.
Time('1.23') // 1:23
Time('123') // 1:23am/pm can optionally be specified.
Time('8:30 pm') // 8:30 pm
Time('3p') // 3:00 pm
Time('3 A.M.') // 3:00 amConverts 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 11Does 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() // falseThere'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() // trueMilitary time is not supported, but may be in the future (or not).
Test
$ npm test