JavaScript — FlipClock — использовать время сервера вместо времени клиента

Я пытаюсь получить монитор событий на 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>

Но это заставляет мои часы работать странно, каждое обновление занимает разные часы и минуты.

3

Решение

Эта ветка помогла мне … Но мне наконец-то удалось сделать это по-другому, что я считаю проще:

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

Другие решения

Javascript должен выполняться только на клиенте (браузере), поэтому он может не получить время сервера.
Итак, вы должны позвонить на сервер, чтобы получить дату.
Одним из способов является использование Ajax и вызов простого скрипта, который отправляет только серверное время назад.

Другим способом является реализация времени сервера прямо внутри скрипта.
Если вы используете PHP, вы можете отправить разницу во времени с чем-то вроде этого в скрипт:

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

Другой способ — настроить NTP-сервер на одном из Raspberrys, чтобы все остальные могли получить от него время во время загрузки.
Вот ваше решение:
http://raspberrypi.tomasgreno.cz/ntp-client-and-server.html

Повеселись!

3

По вопросам рекламы [email protected]