on master help sign in
Add `now` and lots of time conversions to time library
b5df47fevancz
core-js/Signal/Time.js+26−1
@@ -1,4 +1,10 @@
1Elm.Time = function() {
1Elm.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+ };
2 var every = function(t) {
8 var every = function(t) {
3 t *= 1000;
9 t *= 1000;
4 var clock = Elm.Signal.constant(0);
10 var clock = Elm.Signal.constant(0);
@@ -21,5 +27,24 @@ Elm.Time = function() {
21 setTimeout(function() { Dispatcher.notify(thread.id, false); }, t);
27 setTimeout(function() { Dispatcher.notify(thread.id, false); }, t);
22 return thread;
28 return thread;
23 };
29 };
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,
24− return {every:every,after:after,before:before};
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+
25}();
50}();