FlipClock - 使用服务器时间而不是客户端时间

问题描述 投票:3回答:2

我正试图在7种不同的Raspberry Pis上获得一个事件监视器。他们都加载了FlipClock的同一个网页。

我的问题是:RasPis上的时间不同。 (他们无法获得实际的ptb时间,因为他们不允许连接到互联网)

这就是我称之为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>

但这会使我的时钟变得奇怪,每次刷新都会花费不同的时间和分钟。

javascript php flipclock
2个回答
1
投票

这个帖子帮助了我...但我终于设法以另一种方式做到了,我认为这更简单:

var serverTime = '<?php echo Date('H:i:s'); ?>';
var clock = $('#clock').FlipClock(serverTime,{
  clockFace: 'TwentyFourHourClock',
});

3
投票

Javascript只能在客户端(浏览器)上执行,因此无法获得服务器时间。因此,您必须调用服务器来获取日期。一种方法是使用Ajax并调用一个只发送servertime的简单脚本。

另一种方法是直接在脚本中实现Servertime。如果您使用PHP,您可以将类似的时间差发送到脚本:

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

另一种方法是在其中一个Raspberrys上设置NTP服务器,这样所有其他人都可以在启动时从他那里获得时间。这是你的解决方案:http://raspberrypi.tomasgreno.cz/ntp-client-and-server.html

玩得开心!

© www.soinside.com 2019 - 2024. All rights reserved.