我的Web应用程序需要特定的日期值。我改变了日期原型。但它不是Jquery Date的有效日期。
InitDate = Date;
InitDate.prototype = Date.prototype;
Date = function () {
if (arguments.length == 0) {
var now = new InitDate();
var date = new InitDate(2013, 8, 3);
date.setHours(now.getHours());
date.setMinutes(now.getMinutes());
date.setSeconds(now.getSeconds());
date.setMilliseconds(now.getMilliseconds());
date.prototype = Date.prototype;
return date;
}
else {
var date = InitDate.apply(this, arguments);
return date;
}
};
Date.prototype = InitDate.prototype;
错误:
“Uncaught TypeError:这不是Date对象。”
如何更改Javascript Date对象?
答案 0 :(得分:1)
当我更改InitDate.apply(this, arguments);
代码块时问题已解决:
InitDate = Date;
Date = function () {
if (arguments.length == 0) {
var now = new InitDate();
var date = new InitDate(2013, 8, 3);
date.setHours(now.getHours());
date.setMinutes(now.getMinutes());
date.setSeconds(now.getSeconds());
date.setMilliseconds(now.getMilliseconds());
return date;
}
else {
var dte = [0, 0, 0, 0, 0, 0];
for (var i = 0; i < arguments.length && i < 7; i++) {
dte[i] = arguments[i];
}
var newDate = new InitDate(dte[0], dte[1], dte[2], dte[3], dte[4], dte[5]);
return newDate;
}
};
apply()方法的信息:http://msdn.microsoft.com/en-us/library/ie/4zc42wh1(v=vs.94).aspx
答案 1 :(得分:0)
虽然覆盖Date()函数可以使用上述方法,但静态方法会丢失。因此,无法调用Date.now()或Date.parse(...),因为这些方法未定义。