![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jak dodać do set interval date oraz callback, potrzebuję osiągnąć odliczanie z przekazaną datą.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Jeśli now jest zdefiniowane poza timerem, to jest w timerze po prostu widoczne.
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
A co może być powodem że odlicza źle? Przykładowo odpalam stronę z odliczaniem, zmieniam podgląd zakładki na wp.pl posiedzę z 10 sec i później po powrocie do odliczania mam opóźnienie o to 10 sec.
ps. odliczanie działa poprawnie jeżeli nie zmieniam zakładki w przeglądarce Ten post edytował Randallmaster 13.09.2015, 13:57:39 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Bo timery są wstrzymywane/spowalniane gdy się przechodzi na inną kartę
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
A można coś z tym zrobić? bo wtedy odliczanie czasu nie jest prawdziwe? przykładowo do końca pozostało 3 min a z powodu zmiany zakładek będzie pokazywało 4?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Wystarczy zapisać czas zakończenia do zmiennej i operować na nim.
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
a dokładniej? mam zapisany czas w zmiennej ale tutaj występuje błąd wspomniany powyżej, a ja nie mogę zastosować new Date(), ponieważ z aplikacji korzystają firmy z np. londynu gdzie jest inna strefa czasowa ;/
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo rozumiem problem. Skoro masz czas pobrany z serwera, to wystarczy prowadzić obliczenia na jego podstawie.
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
NO POKAZAŁEM KOD. Jak przy takim kodzie przejdę na inną zakładkę i powrócę pokazuje złą godzinę, a trzymam wszystko w zmiennej tylko tak jak napisałeś zmiana zakładki powoduje zwolnienie naliczania
Ten post edytował Randallmaster 13.09.2015, 17:30:29 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Można to zrobić na czasie UTC.
Można też zapisać do zmiennej czas zakończenia tak samo, jak zrobiłeś to z czasem startu - w tym momencie cała operacja sprowadza się do prostego odejmowania. -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
mogę prosić o przykładowy skrypt? Jak dodam do zmiennej czas zakończenia jak zrobiłem z now to tak jak wspomniałeś prędzej będą następować opóźnienia w odejmowaniu po zmianie zakładki.
Ten post edytował Randallmaster 13.09.2015, 17:49:19 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Ok, kombinowałem w ciut inną stronę.
Kod <script>
var timeServer = { year: <?=date('Y');?> ,month: <?=date('m');?> ,day: <?=date('d');?> ,hour: <?=date('H');?> ,minute: <?=date('i');?> ,second: <?=date('s');?> } ,interval ,paused ,changeTime = function(i) { i = i || 1; now.setSeconds(now.getSeconds() + i); console.log(now); } ,now = new Date(timeServer['year'], timeServer['month'], timeServer['day'], timeServer['hour'], timeServer['minute'] ,timeServer['second'], 00); //aktualny czas pobrany z serwera interval = setInterval(changeTime, 1000); document.addEventListener('visibilitychange', function() { if(document.hidden) { clearInterval(interval); paused = Date.now(); } else { changeTime(Math.floor((Date.now() - paused) / 1000)); interval = setInterval(changeTime, 1000); } console.log('visibilitychange', now); }, false); </script> -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za kod
![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 06:05 |