1

サーバー(サーバーにあるWebページ)に現在の時刻を表示しようとしましたが、Webページを開くと、ページを実行しているコンピューターの時刻が表示されます。

それを行う方法はありますか?

これは私のコードです:

function startTime(){
  var today=new Date();
  var h=today.getHours();
  var m=today.getMinutes();
  var s=today.getSeconds();

  m=checkTime(m);
  s=checkTime(s);
  $('#cTime').val(h+":"+m+":"+s);
  t=setTimeout(function(){startTime()},500);
}

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

ありがとうございました。

4

5 に答える 5

4

JavaScript は、クライアント側で実行されるため、実行されているコンピューターの時刻を常に返します。

現在の時刻を出力する簡単なスクリプトをサーバー上に記述し、JavaScriptを介してそのスクリプトにリクエストを送信できます。

次のようなことができます。

PHP

<?php
    // get_time.php
    // Simple!
    echo time();
?>

JavaScript

// Using jQuery's GET function...
$.get('get_time.php', function(data){
    // The variable 'data' should equal the result from the PHP time() function!
    alert(data);
})
于 2012-11-23T16:47:25.373 に答える
3

PHP(以下で説明します)を使用している場合は、最初の読み込み時にページに時間を入れてから、JavaScriptを使用してそれを表示し、ajax呼び出しを繰り返さずに更新できます。

于 2012-11-23T16:50:17.900 に答える
1

PHPはそれを実現できますが、JavaScriptが関数を呼び出して、ページ全体を更新せずに時間を表示する必要がある場合は、それほど柔軟ではない可能性があります。

要件に応じて。その場合は、AJAXを使用してバックエンドphpでhttpリクエストを送信し、時間をjavascriptにエコーバックします。

于 2012-11-23T17:46:02.520 に答える
1

使用しているサーバー側のテクノロジーはわかりませんが、いつでもサーバーに ajax 呼び出しを行ってサーバー時間を取得し、それを Javascript で使用して新しい日時オブジェクトを作成し、上記のロジックを続行できます。

于 2012-11-23T16:49:42.113 に答える
1

他の回答では、ajax で時刻を取得するスクリプトを作成するように言われていますが、ページを出力してから ajax でサーバーに戻すのはなぜですか? サーバー時間が必要な場合は、最初にエコーします。PHP の例:

<?php echo '<script>var today=new Date("'.date("Y-m-d H:i:s").'");</script>'; ?>

たとえば、時間を表示するだけで、何もしないecho date("jS F Y H:i");場合

于 2012-11-23T17:08:37.770 に答える