Обновление даты и времени без отправки запроса
Добрый день. Интересует такой вопрос:
Сервер работает по принципу шаблона, в шаблоне есть переменная %timestamp% показывающая текущее время на сервере, имеет вид: 12.11.2015 12:09:51 (число.месяц.год час:минута:секунда) и переменная %uptime% показывающая время работы сервера 01:43:59 (час:минута:секунда). При загрузке страницы они показывают текущее время, но на этом останавливаются. Хотелось бы их обновлять без дополнительных запросов к серверу, я уверен это возможно. Эти переменные в коде шаблона внёс в специальные span с id: <div id='serverinfo'> {.!Время на сервере.}: <span id="time1">%timestamp%</span><br /> {.!Время работы.}: <span id="time2">%uptime%</span> </div> Ну и начал писать такой скрипт (пока для %timestamp%), однако дописать не могу. Не знаю как можно распознать строку в дату и вероятно сам код написал неправильно до конца. var tst, t = new Date; t= 0; tst = %timestamp%; var upd_tst = document.getElementById("time1") function TimstUpd(){ t=t+1000; tst=tst+t; upd_tst.innerHTML = tst; } window.setInterval("TimstUpd()",1000); В случае со второй функцией, если часы превысят 24 часа, то можно просто дальше накручивать в часы (48, 60, 100, 200), а не создавать блок под дни, месяцы... Подскажет кто со скриптом? |
XCanG,
воспользуйтесь поиском |
Цитата:
|
Цитата:
|
Цитата:
|
Ну почему просто так. Во первых можно оперировать временем UTC, а во вторых на сервере можно узнать часовой пояс его времени и передав его на клиента запустить часы на клиенте по метке скорректированной на разность часовых поясов сервера и клиента, и часы будут тикать по времени сервера.
|
Цитата:
|
Цитата:
Решение скрипта оказалось таким: <script type="text/javascript"> var tst = '%timestamp%'; var upt = '%uptime%'; var m = tst.match(/\d+/g); var n = upt.match(/\d+/g); var dat = new Date(m[2],m[1] - 1,m[0],m[3],m[4],m[5]); var rat = new Date(m[2],m[1] - 1,m[0],n[0],n[1],n[2]); var t = 0; var upd_div = document.getElementById("time1"); var up2_div = document.getElementById("time2"); function timeupd(){ t = t + 1000; dat.setSeconds(dat.getSeconds() + 1); rat.setSeconds(rat.getSeconds() + 1); upd_div.innerHTML = ("0" + dat.getDate()).slice(-2) + "." + ("0"+(dat.getMonth()+1)).slice(-2) + "." + dat.getFullYear() + " " + ("0" + dat.getHours()).slice(-2) + ":" + ("0" + dat.getMinutes()).slice(-2) + ":" + ("0" + dat.getSeconds()).slice(-2); up2_div.innerHTML = ("0" + rat.getHours()).slice(-2) + ":" + ("0" + rat.getMinutes()).slice(-2) + ":" + ("0" + rat.getSeconds()).slice(-2); } window.setInterval("timeupd()",1000); </script> Вот как работает: ![]() |
Цитата:
а строки 8 и 12 зачем? |
Цитата:
<script type="text/javascript"> var tst = '%timestamp%'; var upt = '%uptime%'; var m = tst.match(/\d+/g); var n = upt.match(/\d+/g); var dat = new Date(m[2],m[1] - 1,m[0],m[3],m[4],m[5]); var rat = new Date(m[2],m[1] - 1,m[0],n[0],n[1],n[2]); var upd_div = document.getElementById("time1"); var up2_div = document.getElementById("time2"); function timeupd(){ dat.setSeconds(dat.getSeconds() + 1); rat.setSeconds(rat.getSeconds() + 1); upd_div.innerHTML = ("0" + dat.getDate()).slice(-2) + "." + ("0"+(dat.getMonth()+1)).slice(-2) + "." + dat.getFullYear() + " " + ("0" + dat.getHours()).slice(-2) + ":" + ("0" + dat.getMinutes()).slice(-2) + ":" + ("0" + dat.getSeconds()).slice(-2); up2_div.innerHTML = ("0" + rat.getHours()).slice(-2) + ":" + ("0" + rat.getMinutes()).slice(-2) + ":" + ("0" + rat.getSeconds()).slice(-2); } window.setInterval("timeupd()",1000); </script> |
Часовой пояс GMT +3, время: 09:28. |