4

仮想時間(現在の日時の4倍)が必要です。現在の日付と時刻で実行中の時計を表示することができましたが、現在の時刻の4倍の時刻を表示することができません。

たとえば、現在の日付が01-01-2012 00:00:00の場合、仮想時刻は01-01-201200:00:04である必要があります。

秒だけで乗算する必要はありません。対応する分、時間、日付、月、年も、秒が59仮想秒を超えると乗算されます。つまり、私の日付形式では、時計は1秒ごとに4秒刻みでライブで動作するはずです。

私のページをご覧ください:http://www.chemfluence.org.in/sample.html

現在の時刻で実行されています。これを4倍速く実行したいと思います。

以下の私のコードをご覧ください。

<!DOCTYPE html>
<html>
    <head>
        <script>
            function startTime()
            {
                var today = new Date();
                var h = today.getHours();
                var m = today.getMinutes();
                var s = today.getSeconds();
                // Add a zero in front of numbers<10
                m = checkTime(m);
                s = checkTime(s);
                document.getElementById('txt').innerHTML =
                    today.getDate() +
                    "-" +
                    (today.getMonth()+1)+"-" +
                    today.getFullYear() +
                    " "+h+":"+m+":"+s;
                t = setTimeout(function(){startTime()},500);
            }

            function checkTime(i)
            {
                if (i<10)
                {
                    i = "0" + i;
                }
                return i;
            }
        </script>
    </head>

    <body onload="startTime()">
        <div id="txt"></div>
    </body>
</html>
4

3 に答える 3

4

2つのタイムスタンプと係数を知って、特定の時間ごとの仮想時間を決定する簡単な式があります。

var virtualOrigin = Date.parse("2012-01-01T00:00:04"),
    realOrigin = Date.parse("2012-01-01T00:00:00"),
    factor = 4;

function getVirtual(time) {
    return new Date( virtualOrigin + (time - realOrigin) * factor );
}

// usage:
var now = new Date(),
    toDisplay = getVirtual(now);

jsfiddle.netでのデモ

于 2013-01-11T05:34:33.640 に答える
1
  1. 現在の時刻を決定します( "START")(タイムスタンプとして-1970年からの秒数)

  2. 時計を表示するときは、代わりに(( "CURRENT"-"START")* 4)+"START"を表示します

于 2013-01-11T05:20:45.867 に答える
0

setInterval1秒間実行してから、現在の日付に4秒を追加できます。

(この例では、時間をコンソールに記録するだけですが、HTML要素に簡単に接続できます。)

var date = new Date();

setInterval(function(){
  date = new Date(date.getTime() + 4000);
  console.log(date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
}, 1000);
于 2013-01-11T05:29:37.783 に答える