code: function makeUtcWrapper(d) {
  
  		function addProxyMethod(sourceObj, sourceMethod, targetObj, targetMethod) {
  			sourceObj[sourceMethod] = function() {
  				return targetObj[targetMethod].apply(targetObj, arguments);
  			};
  		};
  
  		var utc = {
  			date: d
  		};
  
  		// support strftime, if found
  
  		if (d.strftime != undefined) {
  			addProxyMethod(utc, "strftime", d, "strftime");
  		}
  
  		addProxyMethod(utc, "getTime", d, "getTime");
  		addProxyMethod(utc, "setTime", d, "setTime");
  
  		var props = ["Date", "Day", "FullYear", "Hours", "Milliseconds", "Minutes", "Month", "Seconds"];
  
  		for (var p = 0; p < props.length; p++) {
  			addProxyMethod(utc, "get" + props[p], d, "getUTC" + props[p]);
  			addProxyMethod(utc, "set" + props[p], d, "setUTC" + props[p]);
  		}
  
  		return utc;
  	}
docs: To have a consistent view of time-based data independent of which time zone the client happens to be in we need a date-like object independent of time zones.  This is done through a wrapper that only calls the UTC versions of the accessor methods.