проверка даты и времени - PullRequest
0 голосов
/ 10 марта 2012

У меня есть небольшой скрипт, который дает мне разницу в секундах между двумя датами в javascript (даты импортируются из php).

Он прекрасно работает для проверки дат при загрузке страницы.

<script>
 // convert php dates into javascript
 var t = "<? echo $rs6[logout_timer] ?>".split(/[- :]/);
 var t2 = "<? echo $now ?>".split(/[- :]/);
 var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
 var d2 = new Date(t2[0], t2[1]-1, t2[2], t2[3], t2[4], t2[5]);

 // get the difference in seconds
 var dif = d.getTime() - d2.getTime();
 var secs = dif / 1000;

 if (secs < -60) { 
    document.getElementById("logout").innerHTML = "more than 60 secs have passed";
    } else {
    document.getElementById("logout").innerHTML = "under 60 seconds";
    } 
</script>

Мне нужно только то, чтобы он запускался и проверялся каждую секунду, а не только при загрузке страницы.Как я могу настроить свой скрипт для этого?

Ответы [ 4 ]

0 голосов
/ 10 марта 2012

Оберните ваш код внутри функции, затем время от времени вызывайте ее с помощью setInterval. В приведенном ниже примере рассматривается функция с именем countdown:

setInterval(countdown, 1000); // run every 1000ms

Примечание : вам не нужно использовать PHP, чтобы получить d2. Просто используйте new Date(), чтобы получить текущую дату в JavaScript.

0 голосов
/ 10 марта 2012

Просто вы можете использовать strtotime для этого

$ts1 = strtotime($rs6[logout_timer]);
$ts2 = strtotime($now);

$seconds_diff = $ts1 - $ts2;
0 голосов
/ 10 марта 2012

Используйте тайм-аут, я показал его с setTimeout, но вы можете использовать setInterval также

var t = "<? echo $rs6[logout_timer] ?>".split(/[- :]/);
var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);

function checkElapsedTime() {
    var now  = new Date();
    var secs = (now.getTime() - d.getTime() ) /1000;
    if (secs > 60) { 
        document.getElementById("logout").innerHTML = "more than 60 secs have passed";
    } else {
        document.getElementById("logout").innerHTML = "under 60 seconds";
    }     
    setTimeout(checkElapsedTime, 1000);
}
checkElapsedTime();
0 голосов
/ 10 марта 2012

Поместите свой чек в таймер JavaScript.

Смотрите здесь для справки: http://www.w3schools.com/js/js_timing.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...