2017-03-17 4 views
0

私はそれ自身でうまく動作するストップウォッチコードを持っています。私は開始し、ユーザーがパンチアウトしたときにそれを表示しようとしているので、時間が計算され、ユーザーがパンチアウトすると停止します。私はそのデータを使ってデータベースに挿入したいと思っています。それをどうやってやりますか?データをデータベースに挿入した後にストップウォッチを始めるには?

<?php if($timedata['is_clocked_in'] === 'Yes'):?> 
    <h5 style="text-transform: uppercase" class="alert alert-info col-md-4">You Are Clocked In : (time count) </h5> 
    <?php elseif($timedata['is_clocked_in'] === 'No'):?> 
<button><i class="fa fa-plus" aria-hidden="true"></i> Punch In Now</button> 
    <?php endif;?> 

マークアップ

<h1><time>00:00:00</time></h1> 
<button id="start">start</button> 
<button id="stop">stop</button> 
<button id="clear">clear</button> 

スクリプト

var h1 = document.getElementsByTagName('h1')[0], 
    start = document.getElementById('start'), 
    stop = document.getElementById('stop'), 
    clear = document.getElementById('clear'), 
    seconds = 0, minutes = 0, hours = 0, 
    t; 

function add() { 
    seconds++; 
    if (seconds >= 60) { 
     seconds = 0; 
     minutes++; 
     if (minutes >= 60) { 
      minutes = 0; 
      hours++; 
     } 
    } 

    h1.textContent = (hours ? (hours > 9 ? hours : "0" + hours) : "00") + ":" + (minutes ? (minutes > 9 ? minutes : "0" + minutes) : "00") + ":" + (seconds > 9 ? seconds : "0" + seconds); 

    timer(); 
} 
function timer() { 
    t = setTimeout(add, 1000); 
} 
timer(); 


/* Start button */ 
start.onclick = timer; 

/* Stop button */ 
stop.onclick = function() { 
    clearTimeout(t); 
} 

/* Clear button */ 
clear.onclick = function() { 
    h1.textContent = "00:00:00"; 
    seconds = 0; minutes = 0; hours = 0; 
} 

答えて

-1

秒をカウントするのJavascriptのsetTimeoutを()関数を使用しないでください。

私は多くの理由を考えることができますが、二つの重要なものは以下のとおりです。

  • 信頼性:訪問者のブラウザの処理上のあなたが完全に頼ります。
  • セキュリティ:訪問者は簡単にコードを操作できます。あなたがPHPへのアクセス権を持っている

、PHPはサーバーのクロックへのアクセスを持っています。それを使用してください。参照:

http://nl1.php.net/manual/en/function.time.php

日付オブジェクトを使用し、その後、Javascriptを使用する必要がある場合。

https://www.w3schools.com/jsref/jsref_obj_date.asp

あなたは開始時に時間を記憶し、その後、停止時間からこれを差し引くことにより、渡された秒を取得します。

timePassed = stopTime - startTime 
+0

おかげで本当に 'live'ソリューションではありません...プラスPHPの時間がローカルになることはありません...私は右ので、そのための完全なクラスを書くために私を必要とするそれを得るために、タイムゾーンを設定する必要があります私は何か国際的なものを造ります –

+0

あなたは絶対時間ではなく、渡された時間だけが必要なので、現地時間は必要ありません。 –

+0

あなたは何かのスニペットを共有することによってあなたが話していることを見せてもらえますか? –

-1

これはajaxで実現できます。

開始前にリクエストを送信し、成功状態でstopメソッドを呼び出します。 PHPが、このため

関連する問題