4

私はdate.jsを使用しています。

time_container.innerHTML = Date.now().toString('T');は一時的に正常に機能し、現在 Firebug コンソールでエラーをスローしています: radix must be an integer at least 2 and no greater than 36。確かに以前は機能していました。

注: date.jstoString()関数は特別な書式指定子を使用します。

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(時間、分、秒、午前/午後)。午前/午後のビットが欠落しています。

また、私は確かDate.now()に今日は以前に働いていました。おそらく、コンピューターの時計をいじってみて、それが違いを生むかどうかを確認します.

含まれているdate.jsのバージョンはdate-en-IE.js. コードで要求された日付は 2008-05-13 ですが、今日の SVN チェックアウトから取得しました。

4

2 に答える 2

5

ECMAScript 5 には Date.now()、1970 年 1 月 1 日からのミリ秒数を返す関数が既にあります。明らかにそのバージョンを呼び出しているため、toString('T')呼び出しはオブジェクトではなく数値で行われDateます。Number.prototype.toStringエラーの発生元である引数として 2 から 36 までの数値のみを使用できます。

少し調べてみると、最新の Datejs バージョンには独自のDate.now()機能が追加されていないようです。動作していたときに古いバージョンを使用していた可能性がありますか?

どちらnew Date().toString('T')の方法でも機能するはずです。

于 2011-09-08T14:54:50.717 に答える