Таймер обратного отсчета с использованием jQuery или Google App Engine?

Мне нужно сделать обратный отсчет, который учитывает дни, часы, минуты и секунды, оставшиеся до даты моего выбора, используя jQuery или движок Google (Python).

Я создал таймер с использованием Javascript, но в этом я использовал системное время.

Мне нужно использовать время сервера. Может ли любой орган дать мне идеи для создания таймера обратного отсчета с использованием времени UTC сервера.

javascript,jquery,google-app-engine,

0

Ответов: 6


6 ов принято
+75

Я создал таймер с использованием Javascript, но в этом я использовал системное время.

Если этот JavaScript действительно удовлетворяет ваши потребности, тогда этот код JavaScript может быть легко выполнен и динамичным. В коде, где бы ни было инициализировано текущее системное время, просто вставьте время своего сервера, используя ваш язык выбора (Python). Другими словами: используйте свой язык сервера (Python) для вывода сценария так же, как и сейчас, за исключением замены части, которая инициализирует текущее время.

В PHP некоторый псевдокод (не уверен в аргументах конструктора Date ()) может выглядеть, например:

// my_countdown_script.php
[..]
var startTime = new Date( <?php echo time(); ?> );
[..]

Затем, вместо того, чтобы включать ваш JavaScript, вы будете включать файл PHP, который вставляет серверное время, как указано выше:

<script type="text/javascript" src="my_countdown_script.php"></script>

Хорошо: это будет работать в любом браузере, который поддерживает уже созданный JavaScript.

(В некоторой более поздней версии ваш JavaScript может включать в себя некоторые инициализаторы, которые позволяют вам установить текущее время после включения библиотеки в ваш HTML. Это позволит фактической библиотеке JavaScript быть статичной и, следовательно, кэшироваться браузером.)


4

хороший плагин jquery можно найти здесь http://keith-wood.name/countdown.html

все, что вам нужно сделать, это передать новую дату с вашего языка скриптов php / asp.net, установив переменную на странице перед инициализацией и обновив функцию _calculatePeriods, чтобы принять эту переменную вместо текущей.

<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/jquery.countdown.js"></script>
<script type="text/javascript">
$(function () {
    var servernow = new Date( <?php echo time(); ?> );
    var austDay = new Date();
    austDay = new Date(austDay.getFullYear() + 1, 1 - 1, 26);
    $('#defaultCountdown').countdown({until: austDay});
    $('#year').text(austDay.getFullYear());
});


</script>

из js / jquery.countdown.js

 * Calculate the requested periods between now and the target time.
   @param  inst  (object) the current settings for this instance
   @param  show  (string[7]) flags indicating which periods are requested/required
   @param  now   (Date) the current date and time
   @return  (number[7]) the current time periods (always positive)
            by year, month, week, day, hour, minute, second */
_calculatePeriods: function(inst, show, now) {
    // Find endpoints
    inst._now = servernow;

мистифицировать


3

Вы можете надежно получить время сервера от http://just-the-time.appspot.com/ - приложения для приложений приложений, которое я сделал, чтобы помочь специалисту по переполнению стека, на самом деле ;-). Его простой код открывается на http://code.google.com/p/just-the-time/ , и я мог бы легко добавить нужные вам функции (страница, на которую запрашивается будущая дата по вашему выбору, возвращает дни , часы, минуты и секунды, в каком-то удобном для использования формате) - просто дайте мне знать!


1

jQuery Timers - это плагин, который я использовал в прошлом, и оказался очень хорошим.

Просто установите две переменные JavaScript в текущее и целевое время для обратного отсчета и используйте таймер jQuery для обновления «оставшегося времени». Если вы хотите, вы можете добавить другое время, которое повторно синхронизирует время сервера и клиента, каждый раз так часто, хотя это, вероятно, не нужно.


0

почему бы просто не использовать методы UTC объекта даты?

см. https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date

все методы местного времени имеют UTC-аналоги

edit: это предназначено для использования с его существующей реализацией в javascript.

Если вы действительно хотите быть уверены, что получаете время сервера, выполните запрос XHR (для чего угодно) и проверьте заголовок «Дата»

JavaScript, JQuery, Google-приложение-двигатель,
Похожие вопросы