aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/js
diff options
context:
space:
mode:
authorGravatar Patrick Hurst <phurst@mit.edu>2014-02-17 19:21:46 -0500
committerGravatar Patrick Hurst <phurst@mit.edu>2014-02-17 19:21:46 -0500
commita3c561f3daaffc39245c1aabee46f8cc22f375b8 (patch)
tree03314bfe6d7f10b5f9e328b87a1cc3ff7988a057 /lib/js
parent52ac255e004d2fc29f0484754885d12043e98422 (diff)
Add Datetime JavaScript support.
Diffstat (limited to 'lib/js')
-rw-r--r--lib/js/urweb.js47
1 files changed, 40 insertions, 7 deletions
diff --git a/lib/js/urweb.js b/lib/js/urweb.js
index 6830945a..cb9a94af 100644
--- a/lib/js/urweb.js
+++ b/lib/js/urweb.js
@@ -217,13 +217,13 @@ var Dt = {
var y = d.getFullYear();
var V = parseInt(Dt.formats.V(d), 10);
var W = parseInt(Dt.formats.W(d), 10);
-
+
if(W > V) {
y++;
} else if(W===0 && V>=52) {
y--;
}
-
+
return y;
},
H: ["getHours", "0"],
@@ -262,7 +262,7 @@ var Dt = {
{
idow = Dt.formats.V(new Date("" + (d.getFullYear()-1) + "/12/31"));
}
-
+
return xPad(idow, 0);
},
w: "getDay",
@@ -345,7 +345,40 @@ function strftime(fmt, thisTime)
var thisDate = new Date();
thisDate.setTime(Math.floor(thisTime / 1000));
return Dt.format(thisDate, fmt);
-};
+};
+
+function fromDatetime(year, month, date, hour, minute, second) {
+ console.log(arguments);
+ return (new Date(year, month, date, hour, minute, second)).getTime() * 1000;
+};
+
+function datetimeYear(t) {
+ return (new Date(t / 1000)).getYear() + 1900;
+};
+
+function datetimeMonth(t) {
+ return (new Date(t / 1000)).getMonth();
+};
+
+function datetimeDay(t) {
+ return (new Date(t / 1000)).getDate();
+};
+
+function datetimeHour(t) {
+ return (new Date(t / 1000)).getHours();
+};
+
+function datetimeMinute(t) {
+ return (new Date(t / 1000)).getMinutes();
+};
+
+function datetimeSecond(t) {
+ return (new Date(t / 1000)).getSeconds();
+};
+
+function datetimeDayOfWeek(t) {
+ return (new Date(t / 1000)).getDay();
+};
// Error handling
@@ -717,7 +750,7 @@ function runScripts(node) {
if (node.tagName == "SCRIPT") {
var savedScript = thisScript;
thisScript = node;
-
+
try {
eval(thisScript.text);
} catch (v) {
@@ -1102,7 +1135,7 @@ function dynClass(html, s_class, s_style) {
x.signal = s_class;
x.sources = null;
x.closures = htmlCls;
-
+
x.recreate = function(v) {
for (var ls = x.closures; ls != htmlCls; ls = ls.next)
freeClosure(ls.data);
@@ -1123,7 +1156,7 @@ function dynClass(html, s_class, s_style) {
x.signal = s_style;
x.sources = null;
x.closures = htmlCls2;
-
+
x.recreate = function(v) {
for (var ls = x.closures; ls != htmlCls2; ls = ls.next)
freeClosure(ls.data);