Date.js:Date.now()表现得很奇怪

TRi*_*RiG 4 javascript date datejs

我正在使用date.js.

这条线time_container.innerHTML = Date.now().toString('T');很好,简单,现在在Firebug控制台中抛出错误:radix must be an integer at least 2 and no greater than 36.它肯定早一点工作.

注意:date.js toString()函数使用特殊格式说明符.

var show_date = {
    setup: function() {
        setInterval(show_date.update, 5000);
    },
    update: function() {
        var date_container = app.get('js_date');
        var time_container = app.get('js_time');

        if (date_container) {
            date_container.innerHTML = Date.today().toString('dS of MMMM yyyy');
        }
        if (time_container) {
            //time_container.innerHTML = Date.now().toString('T');
            var d1 = new Date();
            time_container.innerHTML = d1.toString('T');
        }
    }
}
app.onload(show_date.setup);
Run Code Online (Sandbox Code Playgroud)

app.get()只是一个捷径document.getElementById().app.onload()是(正如你可能猜到的)一个onload函数.

注释掉的行导致了问题.评论下方的替换行有效,但不提供我想要的格式.T应输出h:mm:ss tt(小时,分钟,秒,上午/下午).am/pm位丢失.

而且,我肯定Date.now()今天早些时候工作.也许我会试着玩电脑时钟,看看是否有所作为.

包含的date.js版本是date-en-IE.js.代码中的声明日期是2008-05-13,尽管我今天早些时候从SVN结账时得到了它.

Mat*_*ley 5

ECMAScript 5已经有一个 Date.now()函数可以返回自1970年1月1日以来的毫秒数.你显然正在调用该版本,因此toString('T')调用是在一个数字而不是一个Date对象上.Number.prototype.toString只能从2到36的数字作为其参数,这是错误的来源.

在稍微调查之后,看起来最新的Datejs版本不再添加自己的Date.now()功能了.也许你使用的是旧版本?

尝试new Date().toString('T')改为,这应该是两种方式.