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