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

问题描述:

我试图在7个不同的树莓派上获得一个事件监视器。 他们都获得与FlipClock加载相同的网页。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

什么'$ servertime'的价值?应该是'1453726200' => [epoch timestamp](http://www.epochconverter.com/) –

+0

@TimVermaelen如果我回显$ servertime,我得到'1453726371' –

+0

所以当你查看源代码时,var serverTime = = time() ?>;'看起来像?你也意识到你的服务器和用户的时间将在不同的时区,所以你倒计时很可能是错误的? – epascarello

这个线程帮助我......但我终于成功地做到这一点的另一种方式,我认为这是simplier:

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

感谢分享! :) –

Javascript只能在客户端(浏览器)上执行,所以它可以而不是获取服务器时间。 所以,你必须调用服务器来获取日期。 一种方法是使用Ajax并调用仅发送服务器时间的简单脚本。

另一种方法是直接在脚本内部实现Servertime。

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

一种不同的方式是建立一个NTP服务器上的Raspberrys之一,因此所有其他人可以获取时间: 如果你使用PHP,你可以用类似的东西到脚本发送时间差从他开机时间。 这里是你的解决方案: http://raspberrypi.tomasgreno.cz/ntp-client-and-server.html

玩得开心!

+0

当我使用timeDifference作为时间,它保持改变输出每次刷新的时间(大量!!) –

+0

你的时间将是newDate()+ timeDifference,我想 – Mijago

+0

如果我这样做,并采取与newDate + var时间差它只是使用本地时钟。 我解决了NTP服务器的问题,非常容易,谢谢!:) –