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

FlipClock - Use servertime instead of clienttime

本文关键字:时间 客户端 服务器 FlipClock      更新时间:2023-09-26

我正在尝试在 7 个不同的树莓派上安装事件监视器。他们都得到了加载了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只能在客户端(浏览器)上执行,因此无法获取服务器时间。因此,您必须调用服务器以获取日期。一种方法是使用 Ajax 并调用仅返回服务器时间的简单脚本。

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

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

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

玩得愉快!

这个线程帮助了我...但我最终设法以另一种方式做到这一点,我认为这更简单:

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