also included is a method to get the 2007-11-22T11:42:00.000 string for a date.
This is what I use.
This requires prototype.js
I'm pretty sure I didn't write the dateDiff/dateAdd methods, i'm just going through some of my source code and I was slack and didn't add references.
If you own this code, let me know and i'll add the appropriate references.
iso8601string
Date.prototype.iso8601string = function()
{
var out;
out = this.getYear() + '-' + this.getMonth().toPaddedString(2) + '-' + this.getDate().toPaddedString(2) + 'T' + this.getHours().toPaddedString(2) + ':' + this.getMinutes().toPaddedString(2) + ':00.000'
return out;
}
dateDiff
if you've ever used vbscript, or vb you should be familiar with this method. It gets the difference in units between two dates.
Date.prototype.dateDiff = function (ret,edDate) {
var start = this;
var end = edDate;
ret = ret.toLowerCase();
if(ret=='d') {
return Math.ceil((end.getTime() - start.getTime()) / (24*60*60*1000));
}
else if(ret=='h') {
return Math.ceil((end.getTime() - start.getTime()) / (60*60*1000));
}
else if(ret=='n') {
return Math.ceil((end.getTime() - start.getTime()) / (60*1000));
} else if(ret=='s') {
return Math.ceil((end.getTime() - start.getTime()) / 1000);
} else {
return Math.ceil(end.getTime() - start.getTime());
}
}
dateDiff
if you've ever used vbscript, or vb you should be familiar with this method. It adds a unit to a date, eg: the current date, plus a month.
Date.prototype.dateAdd = function(p_Interval, p_Number){
var thing = new String();
p_Interval = p_Interval.toLowerCase();
if(isNaN(p_Number)){
throw "The second parameter must be a number. \n You passed: " + p_Number;
return false;
}
p_Number = new Number(p_Number);
switch(p_Interval.toLowerCase()){
case "yyyy": {
this.setFullYear(this.getFullYear() + p_Number);
break;
}
case "q": {
this.setMonth(this.getMonth() + (p_Number*3));
break;
}
case "m": {
this.setMonth(this.getMonth() + p_Number);
break;
}
case "y":
case "d":
case "w": {
this.setDate(this.getDate() + p_Number);
break;
}
case "ww": {
this.setDate(this.getDate() + (p_Number*7));
break;
}
case "h": {
this.setHours(this.getHours() + p_Number);
break;
}
case "n": {
this.setMinutes(this.getMinutes() + p_Number);
break;
}
case "s": {
this.setSeconds(this.getSeconds() + p_Number);
break;
}
case "ms": {
this.setMilliseconds(this.getMilliseconds() + p_Number);
break;
}
default: {
throw "The first parameter must be a string from this list: \n" +
"yyyy, q, m, y, d, w, ww, h, n, s, or ms. You passed: " + p_Interval;
return false;
}
}
return this;
}
No comments:
Post a Comment