-<html><head><title>/home/alan/gitlive/roojs1/Date.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
+<html><head><title>Date.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
* Based on:
* Ext JS Library 1.1.1
* Copyright(c) 2006-2007, Ext JS, LLC.
/**
Returns the number of milliseconds between this date and date
@param {Date} date (optional) Defaults to now
- @return {Number} The diff in milliseconds
+ @param {String} interval (optional) Default Date.MILLI, A valid date interval enum value (eg. Date.DAY)
+ @return {Number} The diff in milliseconds or units of interval
@member Date getElapsed
*/
-</span><span class="jsdoc-var">Date.prototype.getElapsed </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Math.abs</span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">())</span><span class="jsdoc-var">.getTime</span><span class="jsdoc-syntax">()-</span><span class="jsdoc-var">this.getTime</span><span class="jsdoc-syntax">());
+</span><span class="jsdoc-var">Date.prototype.getElapsed </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">interval</span><span class="jsdoc-syntax">)
+{
+ </span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">date </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Date</span><span class="jsdoc-syntax">();
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.abs</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date.getTime</span><span class="jsdoc-syntax">()-</span><span class="jsdoc-var">this.getTime</span><span class="jsdoc-syntax">());
+ </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">interval</span><span class="jsdoc-syntax">) {
+
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">Date.SECOND</span><span class="jsdoc-syntax">:
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">/ (1000));
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">Date.MINUTE</span><span class="jsdoc-syntax">:
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">/ (1000*60));
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">Date.HOUR</span><span class="jsdoc-syntax">:
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">/ (1000*60*60));
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">Date.DAY</span><span class="jsdoc-syntax">:
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Math.floor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">/ (1000*60*60*24));
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">Date.MONTH</span><span class="jsdoc-syntax">: </span><span class="jsdoc-comment">// this does not give exact number...??
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">date.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Y"</span><span class="jsdoc-syntax">) - </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Y"</span><span class="jsdoc-syntax">)) * 12) + (</span><span class="jsdoc-var">date.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"m"</span><span class="jsdoc-syntax">) - </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"m"</span><span class="jsdoc-syntax">));
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">Date.YEAR</span><span class="jsdoc-syntax">: </span><span class="jsdoc-comment">// this does not give exact number...??
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">date.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Y"</span><span class="jsdoc-syntax">) - </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"Y"</span><span class="jsdoc-syntax">));
+
+ </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">Date.MILLI</span><span class="jsdoc-syntax">:
+ </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
+ }
};
+
</span><span class="jsdoc-comment">// was in date file..
}
</span><span class="jsdoc-var">code </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">"if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"
- </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m, d, h, i, s);}\n"
+ </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m, d, h, i, s); v.setFullYear(y);}\n"
</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"
- </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m, d, h, i);}\n"
+ </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m, d, h, i); v.setFullYear(y);}\n"
</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"else if (y >= 0 && m >= 0 && d > 0 && h >= 0)\n"
- </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m, d, h);}\n"
+ </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m, d, h); v.setFullYear(y);}\n"
</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"else if (y >= 0 && m >= 0 && d > 0)\n"
- </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m, d);}\n"
+ </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m, d); v.setFullYear(y);}\n"
</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"else if (y >= 0 && m >= 0)\n"
- </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m);}\n"
+ </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y, m); v.setFullYear(y);}\n"
</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"else if (y >= 0)\n"
- </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y);}\n"
+ </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"{v = new Date(y); v.setFullYear(y);}\n"
</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"}return (v && (z || o))?\n" </span><span class="jsdoc-comment">// favour UTC offset over GMT offset
</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">" ((z)? v.add(Date.SECOND, (v.getTimezoneOffset() * 60) + (z*1)) :\n" </span><span class="jsdoc-comment">// reset to UTC, then add offset
</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">" v.add(Date.HOUR, (v.getGMTOffset() / 100) + (o / -100))) : v\n" </span><span class="jsdoc-comment">// reset to GMT, then add offset
</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">"(\\d{1,2})"</span><span class="jsdoc-syntax">}; </span><span class="jsdoc-comment">// Numeric representation of a month, without leading zeros
</span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"m"</span><span class="jsdoc-syntax">:
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">:1,
- </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">"m = parseInt(results[" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">currentGroup </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"], 10) - 1;\n"</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">"m = Math.max(0,parseInt(results[" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">currentGroup </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">"], 10) - 1);\n"</span><span class="jsdoc-syntax">,
</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">"(\\d{2})"</span><span class="jsdoc-syntax">}; </span><span class="jsdoc-comment">// Numeric representation of a month, with leading zeros
</span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">"t"</span><span class="jsdoc-syntax">:
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">:0,