on master help sign in
Add `now` and lots of time conversions to time library
commitb5df47f6f63bd689ba8d6dae18f325a4ff2398b8 authorevancz <info@elm-lang.org> dateTue 13 Nov 2012, 21:31 (14 years ago) parentede839f
1 file changed+26−1
core-js/Signal/Time.js+26−1
core-js/Signal/Time.js+26−1
@@ -1,4 +1,10 @@
11Elm.Time = function() {
2+ var now = function(t) {
3+ var clock = Elm.Signal.constant((new Date()).getTime());
4+ function tellTime() { Dispatcher.notify(clock.id, (new Date()).getTime()); }
5+ setInterval(tellTime, t);
6+ return clock;
7+ };
28 var every = function(t) {
39 t *= 1000;
410 var clock = Elm.Signal.constant(0);
@@ -21,5 +27,24 @@ Elm.Time = function() {
2127 setTimeout(function() { Dispatcher.notify(thread.id, false); }, t);
2228 return thread;
2329 };
24− return {every:every,after:after,before:before};
30+ function read(s) {
31+ var t = Date.parse(s);
32+ return isNaN(t) ? Nothing : Just(s);
33+ }
34+ return {now:now,
35+ every:every,
36+ after:after,
37+ before:before,
38+ hours : function(n) { return n * 3600000; },
39+ minutes : function(n) { return n * 60000; },
40+ seconds : function(n) { return n * 1000; },
41+ millis : function(n) { return n; },
42+ inHours : function(t) { return ~~(t / 3600000); },
43+ inMinutes : function(t) { return ~~(t / 60000); },
44+ inSeconds : function(t) { return ~~(t / 1000); },
45+ inMillis : function(t) { return t; },
46+ toDate : function(t) { return new Date(t); },
47+ read : read
48+ };
49+
2550}();