3

7 つの異なる Raspberry Pi でイベントモニターを取得しようとしています。それらはすべて、FlipClock がロードされた同じ Web ページを取得しています。

私の問題は、RasPis の時間が異なることです。(インターネットへの接続が許可されていないため、実際のptb-timeを取得できません)

これが私がFlipclockを呼んだ方法です:

  <script type="text/javascript">
var clock = $('.clock').FlipClock({
  clockFace: 'TwentyFourHourClock',
  showSeconds: false
});

PHP経由で実際の日付を取得し、FlipClockを次のようにロードしながら設定すれば、問題を解決できると思いました。

clock.setTime($servertime);

しかし、私はこれを機能させることができません..

私はこれにかなり慣れていないので、誰かがそれを解決する方法を知っているなら、私を助けてください:(

編集:これは私の新しい呼び出しがどのように見えるかです:

     <div class="clock"></div>
  <script type="text/javascript">
   var serverTime = <?= time() ?>;
   var timeDifference = new Date - serverTime;
   var clock = $('.clock').FlipClock(timeDifference,{
      clockFace: 'TwentyFourHourClock',
      showSeconds: false
    });
  </script>

しかし、これは私の時計を奇妙に動かし続け、リフレッシュするたびに時間と分が異なります。

4

2 に答える 2

3

Javascript はクライアント(ブラウザ)でのみ実行するように設定されているため、サーバーの時刻を取得することはできません。したがって、サーバーを呼び出して日付を取得する必要があります。1 つの方法は、Ajax を使用して、サーバー時間のみを送り返す単純なスクリプトを呼び出すことです。

もう 1 つの方法は、Servertime をスクリプト内に直接実装することです。PHP を使用している場合は、時間差をそのようなものでスクリプトに送信できます。

<script>
   var serverTime = <?= time() ?>
   var timeDifference = new Date - serverTime;
</script>

別の方法は、ラズベリーの 1 つに NTP サーバーをセットアップすることです。これにより、他のすべてのラズベリーがブート時にラズベリーから時間を取得できます。これがあなたの解決策です: http://raspberrypi.tomasgreno.cz/ntp-client-and-server.html

楽しむ!

于 2016-01-25T12:53:55.230 に答える