Date.js: Date.now() ведет себя странно
Я использую date.js.
Линия time_container.innerHTML = Date.now().toString('T');
работал отлично, кратко, и теперь выдает ошибки в консоли Firebug: radix must be an integer at least 2 and no greater than 36
, Это конечно работало раньше.
Примечание: дата.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);
app.get()
это просто ярлык для document.getElementById()
, app.onload()
является (как вы можете догадаться) функцией загрузки.
Закомментированная строка вызывает проблемы. Подстановочные строки под комментарием работают, но не дают желаемый формат. T
должен выводить h:mm:ss tt
(часы, минуты, секунды, утра / вечера). Бит am/pm отсутствует.
Кроме того, я уверен, Date.now()
работал раньше сегодня. Возможно, я попробую поиграть с компьютерными часами, чтобы понять, имеет ли это значение.
Версия date.js включена в date-en-IE.js
, Заявленная дата в коде - 2008-05-13, хотя я получил ее сегодня из кассы SVN.
2 ответа
ECMAScript 5 уже имеет Date.now()
функция, которая возвращает количество миллисекунд с 1 января 1970 года. Вы, очевидно, называете эту версию, так что toString('T')
звонок на номер, а не на Date
объект. Number.prototype.toString
может принимать в качестве аргумента только число от 2 до 36, из которого исходит ошибка.
Посмотрев немного, похоже, что последняя версия Datejs не добавляет свою собственную Date.now()
функционировать больше. Может быть, вы использовали старую версию, когда она работала?
Пытаться new Date().toString('T')
вместо этого, который должен работать в любом случае.
У меня была такая же ошибка в FireFox. Изменяя метод.toString() на.toDateString() кажется, решил эту проблему. Пример: Date.now().toDateString('M/d/yyyy HH:mm')