0

毎秒発生する最新の日付と時刻を表示しようとしていますが、出力は同じままです。javascriptでこれを行う方法を学んでいるので、jqueryを使用したくありません。表示関数は、オンロード時に本体によって呼び出されています。

function display()
{
    var today = new Date();
    var month = today.getMonth();
    var day = today.getDay();
    var year = today.getFullYear();

    var hour = today.getHours() > 12 ? today.getHours() - 12 : today.getHours();
    var minute = today.getMinutes();
    var seconds = today.getSeconds();
    var milliseconds = today.getMilliseconds();

    var output = month + '/' + day + '/' + year + ' - ' +
    hour + ':' + minute + ':' + seconds + ':' + milliseconds;

    setInterval(function() {

    document.write(output);

    }, 3000);
}
4

3 に答える 3

6

これを試して :

function display()
{
    var today = new Date();
    var month = today.getMonth();
    var day = today.getDay();
    var year = today.getFullYear();

    var hour = today.getHours() > 12 ? today.getHours() - 12 : today.getHours();
    var minute = today.getMinutes();
    var seconds = today.getSeconds();
    var milliseconds = today.getMilliseconds();

    var output = month + '/' + day + '/' + year + ' - ' +
    hour + ':' + minute + ':' + seconds + ':' + milliseconds;

    document.write(output);
}
setInterval(display, 3000);

補足:あなたが欲しいものは何ですかdocument.write?おそらく、<span>または内に表示する必要があり<div>ます。この場合、document.getElementById('someId').innerHTMLが役立ちます。

別の補足: setInterval(display, 3000);setInterval('display();', 3000);は異なります。詳細については、この回答を参照してください。

于 2013-05-02T07:12:06.700 に答える
2

次のように、タイマー関数内で計算を行う必要があります。

function display()
{
  setInterval(function() {
    var today = new Date();
    var month = today.getMonth();
    var day = today.getDay();
    var year = today.getFullYear();

    var hour = today.getHours() > 12 ? today.getHours() - 12 : today.getHours();
    var minute = today.getMinutes();
    var seconds = today.getSeconds();
    var milliseconds = today.getMilliseconds();

    var output = month + '/' + day + '/' + year + ' - ' +
    hour + ':' + minute + ':' + seconds + ':' + milliseconds;

    document.write(output);

  }, 3000);
}
display();
于 2013-05-02T07:13:38.263 に答える
0

変数の値は静的に保持されます。したがって、 outoutの値を変更しない場合、同じままになります。

したがって、間隔コールバック内で日付を計算してから表示する必要があります。

于 2013-05-02T07:14:28.760 に答える