1

这个非常基本的脚本创建了 3 个变量以在页面上使用,以首选格式的今天日期,从今天起 +90 天的日期和从今天起 +120 天的日期。

它在 Firefox 和 IE 上运行良好,但在 Chrome 中,这些变量显示为“未定义”,控制台输出:“未捕获的类型错误:对象 false 没有方法 'setDate'”

这是我的 JavaScript

var today = new Date();
var rg = (today.getMonth()+1) + "/" + today.getDate() + "/" + today.getFullYear();

var closed = new Date();
closed.setDate(today.getDate()+90);
var cl = (closed.getMonth()+1) + "/" + closed.getDate() + "/" + closed.getFullYear();

var expire = new Date();
expire.setDate(today.getDate()+120);
var ex = (expire.getMonth()+1) + "/" + expire.getDate() + "/" + expire.getFullYear();
4

2 回答 2

1

closed是任何window对象的保留名称。(见这里)由于您在全局空间中运行它,所有变量都存储在下面window,因此您正在与浏览器认为的内容发生冲突window.closed

只需更改var closed = new Date();为新名称或按照@KingKongFrog 的建议通过闭包将其放置在新范围内。

于 2012-12-03T21:17:29.123 回答
1

将其放在匿名函数中并尝试

(function() {
    var today = new Date();
    var rg = (today.getMonth()+1) + "/" + today.getDate() + "/" + today.getFullYear();

    var closed = new Date();
    closed.setDate(today.getDate()+90);
    var cl = (closed.getMonth()+1) + "/" + closed.getDate() + "/" + closed.getFullYear();

    var expire = new Date();
    expire.setDate(today.getDate()+120);
    var ex = (expire.getMonth()+1) + "/" + expire.getDate() + "/" + expire.getFullYear();
})();
于 2012-12-03T21:18:12.713 回答