C'est ce dont j'avais besoin pour mon projet. Un peu complexe, mais pour autant que je sache, tout est nécessaire. La Date interne () est une bête étrange. Aussi le code ci-dessous utilise des underscorejs.
(window || global).Date = (function (orgDate) {
var fakeDate = function (y, m, d, ho, mi, se, mil) {
var backendDate;
if (arguments.length > 3) {
backendDate = new orgDate(y, m, d, ho || 0, mi || 0, se || 0, mil || 0);
} else if (arguments.length > 1) {
backendDate = new orgDate(y, m || 0, d || 0);
} else if (arguments.length > 0) {
backendDate = new orgDate(y);
} else {
backendDate = new orgDate();
backendDate.setFullYear(2015); // <-- Your year here
backendDate.setMonth(1); // <-- Your month here
backendDate.setDate(2); // <-- Your day here
}
if (this) {
this.backendDate = backendDate;
}
return backendDate.toString();
}
_.each(("getDate getDay getFullYear getHours getMilliseconds getMinutes " +
"getMonth getSeconds getTime getTimezoneOffset getUTCDate getUTCDay " +
"getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes " +
"getUTCMonth getUTCSeconds getYear parse setDate setFullYear setHours " +
"setMilliseconds setMinutes setMonth setSeconds setTime setUTCDate " +
"setUTCFullYear setUTCHours setUTCMilliseconds setUTCMinutes " +
"setUTCMonth setUTCSeconds setYear toDateString toGMTString " +
"toISOString toJSON toLocaleDateString toLocaleTimeString " +
"toLocaleString toString toTimeString toUTCString UTC valueOf").split(" "),
function (fnName) {
fakeDate.prototype[fnName] = function () {
return this.backendDate[fnName].apply(this.backendDate, arguments);
}
});
return fakeDate;
})(window.Date);