我试图在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>
但这会使我的时钟变得奇怪,每次刷新都会花费不同的时间和分钟。
答案 0 :(得分: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
玩得开心!
答案 1 :(得分:1)
这个帖子帮助了我...但我终于设法以另一种方式做到了,我认为这更简单:
var serverTime = '<?php echo Date('H:i:s'); ?>';
var clock = $('#clock').FlipClock(serverTime,{
clockFace: 'TwentyFourHourClock',
});