0

Webサイトページに現在の日付と時刻を表示するための次のスクリプトがあります。

<script type = "text/javascript">

function startTime() {
var now = new Date();
var h=now.getHours();
var min=now.getMinutes();
var s=now.getSeconds();
var ampm=(now.getHours()>11)?"PM":"AM";
var d=now.getDay();
var y=now.getFullYear();
var mon=now.getMonth();

var endings=["st","nd","rd","th"];
var dayendings=[0,1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,0,2,3,4,4,4,4,4,4,1];
var days=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var months=["January","February","March","April", "May", "June","July","August","September", "October", "Novemeber","Decemeber"];
if (h>12) {h-=12}
if (h==0) {h=12};
if (min<10) {min="0"+min}
if (s<10) {s="0"+s}

d=days[d+1];
mon=months[mon];
document.getElementById("time").innerHTML=d+" "+mon+" "+[now.getDate()-6]+", "+y+" "+h+":"+min+":"+s+" "+ampm;
var tim = setTimeout("startTime()",1000);
}
</script>

次に、ユーザーが学生番号を入力する必要があるテキストエリアがあります。また、送信ボタンをクリックすると、現在の日付と時刻がデータベースに保存されます。これは、実際にはユーザーの出入りの時間です。

それを正しく行う方法は?

4

2 に答える 2

2

クライアント側の時間値を信頼しないでください。ユーザーの時計が正確であること、または意図的に誤って設定されていないことは絶対に保証されません。

「現在の時刻」を記録する必要がある場合は、次のようなものを使用します

INSERT INTO yourtable (timefield) VALUES (now())
                                          ^^^^^

(おそらく)より信頼できるタイムスタンプを挿入します。

于 2012-05-25T15:20:17.483 に答える
0

マークに同意します。ただし、NOW()サーバーの現地時間に依存しますが、UTC_TIMESTAMP()UTC時間に依存しない一意の場所を選択するため、時間オフセットが発生します。

于 2012-05-25T15:23:23.787 に答える