Odliczanie czasu w JavaScript
styczeń 25, 2007 – 7:42 po południuPrzedstawiam skrypt, który odlicza czas do określonej godziny. Skrypt powtarza codziennie tą samą czynność dla danego dnia.
Napisałem ten skrypt dla kolegi. Prosił mnie więc ma ![]()
Może komuś innemu też się przyda.
function liczCzas() { now = new Date(); rok = now.getFullYear(); miesiac = now.getMonth(); dzien = now.getDate(); to = new Date(rok,miesiac,dzien,12,0,0); ile = to.getTime() - now.getTime(); godzin = Math.floor(ile / (1000 * 60 * 60)); minut = Math.floor( ile / (1000 * 60)-godzin*60); sekund = Math.floor(ile / 1000 - godzin*60*60 - minut*60); if (godzin < 0) { to = new Date(rok,miesiac,dzien+1,12,0,0); ile = to.getTime() - now.getTime(); godzin = Math.floor(ile / (1000 * 60 * 60)); minut = Math.floor(ile / (1000 * 60)-godzin*60); sekund = Math.floor(ile / 1000 - godzin*60*60 - minut*60); } document.getElementById("time").innerHTML = "Pozostalo: "+godzin+" ... godzin, "+minut+" minut, "+sekund+" sekund"; } var animeInt; clearInterval(animeInt); animeInt = setInterval("liczCzas()", 1000);
W body teraz trzeba jeszcze dodać:
<div id="time"></div>
Można by jeszcze poprawić, zoptymalizować, ale to pozostawię Wam.
10 Responses to “Odliczanie czasu w JavaScript”
Moim zdaniem bardzo dobry sktypt troche przerobiłem i wykorzystalem na http://www…..pl
By Landon on kwietnia 14, 2007
Moja modyfikacja tego skryptu wygląda tak:
function liczCzas() {
now = new Date();
rok = now.getFullYear();
miesiac = now.getMonth();
dzien = now.getDate();
to = new Date(rok,miesiac,dzien,14,10,0);
ile = to.getTime() - now.getTime();
godzin = Math.floor(ile / (1000 * 60 * 60));
minut = Math.floor(ile / (1000 * 60)-godzin*60);
sekund = Math.floor(ile / 1000 - godzin*60*60 - minut*60);
if (ile > 0) {
document.getElementById(’time’).innerHTML = ‘Pozostalo: ‘+godzin+’ godzin, ‘+minut+’ minut, ‘+sekund+’ sekund’;
} else {
document.getElementById(’time’).innerHTML = ‘Zakończone’;
}
}
var animeInt;
clearInterval(animeInt);
animeInt = setInterval(”liczCzas()”, 1000);
By Landon on kwietnia 15, 2007
Moim zdaniem to fajny pomysł też modyfikuje ten kod może zrobię coś lepszego
By Darminl on lipca 10, 2007
Dobra zrobiłem
function liczCzas() {
var element = document.getElementById(’time’);
var stat = element.firstChild.nodeValue;
var ile = stat-1;
document.getElementById(’time’).innerHTML = ile;
}
var animeInt;
clearInterval(animeInt);
animeInt = setInterval(”liczCzas()”, 1000);
‘.$pozostalo.”;
?>
By Darminl on lipca 11, 2007
NIe ma edycji ale tak lepiej
function liczCzas() {
var element = document.getElementById(’time’);
var stat = element.firstChild.nodeValue;
var ile = stat-1;
document.getElementById(’time’).innerHTML = ile;
}
var animeInt;
clearInterval(animeInt);
animeInt = setInterval(”liczCzas()”, 1000);
<?
echo ‘<div id=”time”>’.$pozostalo.’</div>’;
?>
By Darminl on lipca 11, 2007
@Darminl tylko że Twój skrypt jest mało podobny w zastosowaniu do mojego, bo odlicza tylko sekundy. Więc trzeba jeszcze dodatkowo godzine przeliczać na sekundy. Nie mówiąc już o tym że za każdym razem gdzy sie odświeży strone zacznie liczyć od początku, a nie do określonej godziny.
By Jarek on lipca 11, 2007
Dlaczego tak myślisz jeśli masz php i MySql na serwie to robisz tak.
Do MySql dajesz pole, tabelę (rekord) z datą rozpoczęcia + czasem trwania puźneij wywołujesz przed tym
$pozostalo = $baza['do']-date(”U”);
No i odlicza myślę jak zrobić aby przeliczało na min i sekundy , godziny
a i usuń te 2 komenty u góry
<script>
var ile =<?=$pozostało?>;
function liczCzas() {
ile–;
var godzin = Math.floor(ile / (60 * 60));
var minut = Math.floor((ile-godzin*60) / 60);
var sekund = Math.floor(ile - godzin*60*60 - minut*60);
if (ile > 0) {
document.getElementById(’time’).innerHTML = ‘Pozostalo: ‘+godzin+’ godzin, ‘+minut+’ minut, ‘+sekund+’ sekund’;
} else {
document.getElementById(’time’).innerHTML = ‘Zakończone’;
}
}
setInterval(”liczCzas()”, 1000);
</script>
By Lanodn on lipca 11, 2007
Można i tak, ale mnie chodziło o zrobienie czego innego. Ty rozszerzyłeś zakres podzespołów torzebnych do zrobienia tego. Też może być
By Jarek on lipca 11, 2007
Hmm no niby tak ale mocno zmodyfikowałem ten kod teraz nie podam go tutaj lecz będzie dostępny w grze ale pod nowym adresem [...]
By Landon on listopada 6, 2007
A mam takie pyt. (robię grę via i chciałem zrobić właśnie live clock [kategoria gry to strategia]) czas ile zostało aby budynek został zbudowany jest zapisany w bazie danych MySQL (jest zapisywany w sekundach).I tu jest problem gdzie podłożyć ten wynik, w jakim fragmencie?
Za to: to.getTime()?
By ulosok on lutego 25, 2009