fix simple interval support to Date.getElapsed()
authorAlan Knowles <alan@roojs.com>
Wed, 9 Mar 2022 02:11:09 +0000 (10:11 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 9 Mar 2022 02:11:09 +0000 (10:11 +0800)
Date.js
docs/src/Date.js.html
roojs-all.js
roojs-core-debug.js
roojs-core.js
roojs-debug.js

diff --git a/Date.js b/Date.js
index dab725c..0470095 100644 (file)
--- a/Date.js
+++ b/Date.js
@@ -117,11 +117,11 @@ Date.prototype.getElapsed = function(date, interval)
         case  Date.SECOND:
             return Math.floor(ret / (1000));
         case  Date.MINUTE:
-            return Math.floor(ret / (100*60));
+            return Math.floor(ret / (1000*60));
         case  Date.HOUR:
-            return Math.floor(ret / (100*60*60));
+            return Math.floor(ret / (1000*60*60));
         case  Date.DAY:
-            return Math.floor(ret / (100*60*60*24));
+            return Math.floor(ret / (1000*60*60*24));
         case  Date.MONTH: // this does not give exact number...??
             return ((date.format("Y") - this.format("Y")) * 12) + (date.format("m") - this.format("m"));
         case  Date.YEAR: // this does not give exact number...??
index 768075b..fedb80c 100644 (file)
@@ -117,11 +117,11 @@ document.write(dt.format(Date.patterns.ShortDate));
         </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">/ (100*60));
+            </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">/ (100*60*60));
+            </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">/ (100*60*60*24));
+            </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">&quot;Y&quot;</span><span class="jsdoc-syntax">) - </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Y&quot;</span><span class="jsdoc-syntax">)) * 12) + (</span><span class="jsdoc-var">date.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;m&quot;</span><span class="jsdoc-syntax">) - </span><span class="jsdoc-var">this.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;m&quot;</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...??
index 2f96836..1b2f8c7 100644 (file)
@@ -37,7 +37,7 @@ Roo.applyIf(Array.prototype,{indexOf:function(o){for(var i=0,A=this.length;i<A;i
 }var C=new Array(B);var D=arguments[1];for(var i=0;i<B;i++){if(i in this){C[i]=A.call(D,this[i],i,this);}}return C;},equals:function(b){if(this===b){return true;}if(b==null){return false;}if(this.length!==b.length){return false;}for(var i=0;i<this.length;
 ++i){if(this[i]!==b[i]){return false;}}return true;}});Roo.applyIf(Array,{from:function(o){var A=[];for(var i=0;i<o.length;i++){A[i]=o[i];}return A;}});
 // Date.js
-Date.prototype.getElapsed=function(A,B){A=A||new Date();var C=Math.abs(A.getTime()-this.getTime());switch(B){case Date.SECOND:return Math.floor(C/(1000));case Date.MINUTE:return Math.floor(C/(100*60));case Date.HOUR:return Math.floor(C/(100*60*60));case Date.DAY:return Math.floor(C/(100*60*60*24));
+Date.prototype.getElapsed=function(A,B){A=A||new Date();var C=Math.abs(A.getTime()-this.getTime());switch(B){case Date.SECOND:return Math.floor(C/(1000));case Date.MINUTE:return Math.floor(C/(1000*60));case Date.HOUR:return Math.floor(C/(1000*60*60));case Date.DAY:return Math.floor(C/(1000*60*60*24));
 case Date.MONTH:return ((A.format("Y")-this.format("Y"))*12)+(A.format("m")-this.format("m"));case Date.YEAR:return (A.format("Y")-this.format("Y"));case Date.MILLI:default:return C;}};Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0}
 ;Date.prototype.dateFormat=function(A){if(Date.formatFunctions[A]==null){Date.createNewFormat(A);}var B=Date.formatFunctions[A];return this[B]();};Date.prototype.format=Date.prototype.dateFormat;Date.createNewFormat=function(A){var B="format"+Date.formatFunctions.count++;
 Date.formatFunctions[A]=B;var C="Date.prototype."+B+" = function(){return ";var D=false;var ch='';for(var i=0;i<A.length;++i){ch=A.charAt(i);if(!D&&ch=="\\"){D=true;}else if(D){D=false;C+="'"+String.escape(ch)+"' + ";}else{C+=Date.getFormatCode(ch);}}eval(C.substring(0,C.length-3)+";}");
index 040021f..73e26b3 100644 (file)
@@ -1205,9 +1205,8 @@ document.write(dt.format(Date.patterns.ShortDate));
 /**
  Returns the number of milliseconds between this date and date
  @param {Date} date (optional) Defaults to now
- @param {Date} date (optional) Defaults to now
- @param {String} interval   A valid date interval enum value (eg. Date.DAY)
- @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
  */
 Date.prototype.getElapsed = function(date, interval)
@@ -1219,11 +1218,11 @@ Date.prototype.getElapsed = function(date, interval)
         case  Date.SECOND:
             return Math.floor(ret / (1000));
         case  Date.MINUTE:
-            return Math.floor(ret / (100*60));
+            return Math.floor(ret / (1000*60));
         case  Date.HOUR:
-            return Math.floor(ret / (100*60*60));
+            return Math.floor(ret / (1000*60*60));
         case  Date.DAY:
-            return Math.floor(ret / (100*60*60*24));
+            return Math.floor(ret / (1000*60*60*24));
         case  Date.MONTH: // this does not give exact number...??
             return ((date.format("Y") - this.format("Y")) * 12) + (date.format("m") - this.format("m"));
         case  Date.YEAR: // this does not give exact number...??
index 8e77b72..5b5b74e 100644 (file)
@@ -37,7 +37,7 @@ Roo.applyIf(Array.prototype,{indexOf:function(o){for(var i=0,A=this.length;i<A;i
 }var C=new Array(B);var D=arguments[1];for(var i=0;i<B;i++){if(i in this){C[i]=A.call(D,this[i],i,this);}}return C;},equals:function(b){if(this===b){return true;}if(b==null){return false;}if(this.length!==b.length){return false;}for(var i=0;i<this.length;
 ++i){if(this[i]!==b[i]){return false;}}return true;}});Roo.applyIf(Array,{from:function(o){var A=[];for(var i=0;i<o.length;i++){A[i]=o[i];}return A;}});
 // Date.js
-Date.prototype.getElapsed=function(A,B){A=A||new Date();var C=Math.abs(A.getTime()-this.getTime());switch(B){case Date.SECOND:return Math.floor(C/(1000));case Date.MINUTE:return Math.floor(C/(100*60));case Date.HOUR:return Math.floor(C/(100*60*60));case Date.DAY:return Math.floor(C/(100*60*60*24));
+Date.prototype.getElapsed=function(A,B){A=A||new Date();var C=Math.abs(A.getTime()-this.getTime());switch(B){case Date.SECOND:return Math.floor(C/(1000));case Date.MINUTE:return Math.floor(C/(1000*60));case Date.HOUR:return Math.floor(C/(1000*60*60));case Date.DAY:return Math.floor(C/(1000*60*60*24));
 case Date.MONTH:return ((A.format("Y")-this.format("Y"))*12)+(A.format("m")-this.format("m"));case Date.YEAR:return (A.format("Y")-this.format("Y"));case Date.MILLI:default:return C;}};Date.parseFunctions={count:0};Date.parseRegexes=[];Date.formatFunctions={count:0}
 ;Date.prototype.dateFormat=function(A){if(Date.formatFunctions[A]==null){Date.createNewFormat(A);}var B=Date.formatFunctions[A];return this[B]();};Date.prototype.format=Date.prototype.dateFormat;Date.createNewFormat=function(A){var B="format"+Date.formatFunctions.count++;
 Date.formatFunctions[A]=B;var C="Date.prototype."+B+" = function(){return ";var D=false;var ch='';for(var i=0;i<A.length;++i){ch=A.charAt(i);if(!D&&ch=="\\"){D=true;}else if(D){D=false;C+="'"+String.escape(ch)+"' + ";}else{C+=Date.getFormatCode(ch);}}eval(C.substring(0,C.length-3)+";}");
index 279e69f..80e1e1d 100644 (file)
@@ -1205,9 +1205,8 @@ document.write(dt.format(Date.patterns.ShortDate));
 /**
  Returns the number of milliseconds between this date and date
  @param {Date} date (optional) Defaults to now
- @param {Date} date (optional) Defaults to now
- @param {String} interval   A valid date interval enum value (eg. Date.DAY)
- @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
  */
 Date.prototype.getElapsed = function(date, interval)
@@ -1219,11 +1218,11 @@ Date.prototype.getElapsed = function(date, interval)
         case  Date.SECOND:
             return Math.floor(ret / (1000));
         case  Date.MINUTE:
-            return Math.floor(ret / (100*60));
+            return Math.floor(ret / (1000*60));
         case  Date.HOUR:
-            return Math.floor(ret / (100*60*60));
+            return Math.floor(ret / (1000*60*60));
         case  Date.DAY:
-            return Math.floor(ret / (100*60*60*24));
+            return Math.floor(ret / (1000*60*60*24));
         case  Date.MONTH: // this does not give exact number...??
             return ((date.format("Y") - this.format("Y")) * 12) + (date.format("m") - this.format("m"));
         case  Date.YEAR: // this does not give exact number...??