Согласуйте плагин обратного отсчета jQuery с временем сервера

0

Недавно я использовал обратный отсчет на странице продукта. Я использовал Jquery Countdown, который действительно замечательный. Я хотел бы синхронизировать таймер с временем сервера, потому что, если пользователь меняет часовой пояс, то на таймер добавляется час (ы), и это основная проблема.

На сайте плагина (на вкладке, называемой часовыми поясами) есть несколько советов, но на самом деле не получить его, как объединить скрипты вместе, а не быть частью бэкэнда.

Это часть моего кода: http://jsfiddle.net/zG9Ta/4/

Пожалуйста, проверьте нижнюю часть моего js, потому что я включил плагин внутри вкладки JS (и он должен был быть сверху).

Любая помощь в том, как объединить мой внешний код с временем сервера?

Заранее спасибо.

Основной JS:

function call(){
      $('.countdownclock').countdown({until: new Date(2014, 4-1,10,09,00), timezone:+3, format: 'HMS',padZeroes: true});

   }

setTimeout(call,500);
Теги:
countdown

1 ответ

0

JavaScript работает на стороне клиента, поэтому для того, чтобы JavaScript Date() показывал клиенту время в серверном времени, на стороне сервера (при условии, что контроллер или класс действия), вам нужно будет получить смещение часового пояса сервера как int и перейдите на страницу как параметр. Затем, в свою JS-дату, создайте дату UTC, а затем увеличьте эту дату по смещению.

В вашем контроллере/действии:

Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
int tzOffset = tz.getOffset(cal.getTimeInMillis());

В вашем JS:

var wallTimeDate = new Date(); 
var utcDate = new Date(wallTimeDate.getUTCFullYear(), wallTimeDate.getUTCMonth(), wallTimeDate.getUTCDate(),  wallTimeDate.getUTCHours(), wallTimeDate.getUTCMinutes(), wallTimeDate.getUTCSeconds());
var serverDate = new Date(now_utc.getTime() + tzOffset);

Вы можете увидеть все методы для JS Date в W3C JS UTC

После того, как у вас есть дата, передайте ее функции JQuery и используйте ее вместо той, которая у вас есть. Это должно дать вам то, что вам нужно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню