我正在使用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()
函数使用特殊format specifiers。
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);
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结账处得到了它。
答案 0 :(得分:5)
ECMAScript 5已经有一个Date.now()
函数,它返回自1970年1月1日以来的毫秒数。您显然正在调用该版本,因此toString('T')
调用是在一个数字上,而不是Date
1}}对象。 Number.prototype.toString
只能使用2到36之间的数字作为参数,这是错误的来源。
稍微调查一下后,看起来最新的Datejs版本不再添加自己的Date.now()
功能了。也许你在使用它时使用旧版本?
请尝试使用new Date().toString('T')
,这应该可以正常工作。
答案 1 :(得分:0)
我在FireFox中遇到了同样的错误。
通过将.toString()方法更改为.toDateString()似乎可以解决这个问题。
示例:Date.now().toDateString('M/d/yyyy HH:mm')