2013-02-21 23:33:53 +00:00
|
|
|
|
2013-02-22 23:19:40 +00:00
|
|
|
/*
|
|
|
|
import Maybe
|
|
|
|
import JavaScript
|
|
|
|
*/
|
|
|
|
|
|
|
|
(function() {
|
2013-02-21 23:33:53 +00:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
function dateNow() { return new window.Date; }
|
|
|
|
function readDate(str) {
|
2013-02-22 23:19:40 +00:00
|
|
|
var d = new window.Date(Elm.JavaScript.castStringToJSString(str));
|
|
|
|
if (isNaN(d.getTime())) return Elm.Maybe.Nothing;
|
|
|
|
return Elm.Maybe.Just(d);
|
2013-02-21 23:33:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var dayTable = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
|
|
var monthTable = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
|
|
|
|
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
|
|
|
|
|
|
|
Elm.Native.Date = {
|
|
|
|
read : readDate,
|
|
|
|
year : function(d) { return d.getFullYear(); },
|
|
|
|
month : function(d) { return { ctor:monthTable[d.getMonth()] }; },
|
|
|
|
day : function(d) { return d.getDate(); },
|
|
|
|
hour : function(d) { return d.getHours(); },
|
|
|
|
minute : function(d) { return d.getMinutes(); },
|
|
|
|
second : function(d) { return d.getSeconds(); },
|
|
|
|
toTime : function(d) { return d.getTime(); }
|
|
|
|
dayOfWeek : function(d) { return { ctor:dayTable[d.getDay()] }; },
|
|
|
|
};
|
|
|
|
|
2013-02-22 23:19:40 +00:00
|
|
|
}());
|