3

Javascript でタイマーを作成しようとしていますが、時間文字列に 1 秒を追加する方法がわかりません。

時間文字列: 03:31:15

function updateWorked() {
        var time = $("#worked").html();
        ???
        $("#worked").html(wtime);
}

$(document).ready(function() {
    setInterval('updateWorked()', 1000);
});

「???」には何を書けばいいの?これを機能させるには?

4

4 に答える 4

6

最初に時間文字列を取得するために PHP のようなものを使用していて、Marc B によって提案されているように日付/時間を数値として追跡できないと仮定すると、次のように文字列を自分で解析できます。

var $worked = $("#worked");
var myTime = $worked.html();
var ss = myTime.split(":");
var dt = new Date();
dt.setHours(ss[0]);
dt.setMinutes(ss[1]);
dt.setSeconds(ss[2]);
var dt2 = new Date(dt.valueOf() + 1000);
var ts = dt2.toTimeString().split(" ")[0];
$worked.html(ts);

編集:このコードのjsFiddleをここで動作させます。

タイマー付きのコードは次のとおりです。

于 2012-10-09T18:31:22.110 に答える
4

以下は、時間文字列に秒を追加する方法の例です。日付オブジェクトを使用して、任意の形式で文字列を出力できます。この例では、組み込みの toTimeString メソッドを使用しています。

var timeString = "10/09/2012 14:41:08";
// start time
var startTime = new Date(timeString);
// prints 14:41:08 GMT-0400 (EDT)
console.log(startTime.toTimeString())
// add a second to the start time
startTime.setSeconds(startTime.getSeconds() + 1);
// prints 14:41:09 GMT-0400 (EDT)
console.log(startTime.toTimeString())
于 2012-10-09T18:44:51.960 に答える
0

カウンターをリアルタイムで保持しようとしている場合は、 を使用new Date()して時間を取得し、フォーマットする必要があります。

function updateWorked() {
    var time = new Date(),
        wtime = formatDate(time);
    $("#worked").html(wtime);
}

ただし、特定の時間を保持しようとしている場合は、 Date オブジェクトをアップスコープして使用する必要があります。

var time = new Date(/* your starting time */);
function updateWorked() {
    time.setTime(time.getTime()+1000);
    var wtime = formatDate(time);
    $("#worked").html(wtime);
}

formatDateまた、関数を追加したいでしょう:

function formatDate(date) {
  var hours = date.getHours().toString();
  if (hours.length < 2) hours = '0'+hours;
  var minutes = date.getMinutes().toString();
  if (minutes.length < 2) minutes = '0'+minutes;
  var seconds = date.getSeconds().toString();
  if (seconds.length < 2) seconds = '0'+seconds;
  return hours+':'+minutes+':'+seconds;
}
于 2012-10-09T18:37:19.763 に答える
-1

jquery と javascript を組み合わせて使用​​すると、この例を実現できます。

あなたが探しているものを達成するのに疲れました。最初に日付オブジェクトを作成し、時間、分、秒のすべての値を取得してから、値を置き換えました。jsfiddle をご覧ください

デモ

http://jsfiddle.net/saorabhkr/xtrpK/

于 2012-10-09T18:40:13.403 に答える