on cd4b4e2 help sign in
33 lines 1.2 kB history raw
1Elm.Native.Date = {};
2Elm.Native.Date.make = function(elm) {
3 elm.Native = elm.Native || {};
4 elm.Native.Date = elm.Native.Date || {};
5 if (elm.Native.Date.values) return elm.Native.Date.values;
7 var JS = Elm.JavaScript.make(elm);
8 var Maybe = Elm.Maybe.make(elm);
10 function dateNow() { return new window.Date; }
11 function readDate(str) {
12 var d = new window.Date(JS.fromString(str));
13 if (isNaN(d.getTime())) return Maybe.Nothing;
14 return Maybe.Just(d);
15 }
17 var dayTable = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
18 var monthTable = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
19 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
21 return elm.Native.Date.values = {
22 read : readDate,
23 year : function(d) { return d.getFullYear(); },
24 month : function(d) { return { ctor:monthTable[d.getMonth()] }; },
25 day : function(d) { return d.getDate(); },
26 hour : function(d) { return d.getHours(); },
27 minute : function(d) { return d.getMinutes(); },
28 second : function(d) { return d.getSeconds(); },
29 toTime : function(d) { return d.getTime(); },
30 dayOfWeek : function(d) { return { ctor:dayTable[d.getDay()] }; }
31 };
33};