Date.prototype.toISO8601String = function (format, offset) {
    /* accepted values for the format [1-6]:
     1 Year:
       YYYY (eg 1997)
     2 Year and month:
       YYYY-MM (eg 1997-07)
     3 Complete date:
       YYYY-MM-DD (eg 1997-07-16)
     4 Complete date plus hours and minutes:
       YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
     5 Complete date plus hours, minutes and seconds:
       YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
     6 Complete date plus hours, minutes, seconds and a decimal
       fraction of a second
       YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
    */
    if (!format) { var format = 6; }
    if (!offset) {
	var offset = 'Z';
	var date = this;
    } else {
	var d = offset.match(/([-+])([0-9]{2}):([0-9]{2})/);
	var offsetnum = (Number(d[2]) * 60) + Number(d[3]);
	offsetnum *= ((d[1] == '-') ? -1 : 1);
	var date = new Date(Number(Number(this) + (offsetnum * 60000)));
    }

    var zeropad = function (num) { return ((num < 10) ? '0' : '') + num; }

    var str = "";
    str += date.getUTCFullYear();
    if (format > 1) { str += "-" + zeropad(date.getUTCMonth() + 1); }
    if (format > 2) { str += "-" + zeropad(date.getUTCDate()); }
    if (format > 3) {
	str += "T" + zeropad(date.getUTCHours()) +
	       ":" + zeropad(date.getUTCMinutes());
    }
    if (format > 5) {
	var secs = Number(date.getUTCSeconds() + "." +
		   ((date.getUTCMilliseconds() < 100) ? '0' : '') +
		   zeropad(date.getUTCMilliseconds()));
	str += ":" + zeropad(secs);
    } else if (format > 4) { str += ":" + zeropad(date.getUTCSeconds()); }

    if (format > 3) { str += offset; }
    return str;
}

function getLastDate(offset) {
	var now = new Date();
	var timeInMil = Date.parse(now) - Date.parse(now) % 86400000 - offset;
	var lastweek = new Date(timeInMil);
	var lastdateiso = lastweek.toISO8601String(5);
	
	return lastdateiso;
}

function test() {
	var offsetM = 1000*60*60*24*30;
	var offsetW = 1000*60*60*24*7;
	document.write(getLastDate(offsetW));
	document.write("<br/>");
	document.write(getLastDate(offsetM));
 }