• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ten sam licznik podaje różne czasy na różnych urządzeniach.

Object Storage Arubacloud
+1 głos
169 wizyt
pytanie zadane 6 listopada 2015 w JavaScript przez jensej Nowicjusz (130 p.)
Witam.

Otóż mam kod który oblicza czas do końca aukcji. Czas do końca aukcji jest zapisany w bazie danych w milisekundach.

Kod sobie oblicza czas do końca każdej aukcji Czyli bierze  (czas z bazy - aktualny czas = wynik). I tutaj pojawia się pewien błąd.

Otóż jeśli otworzę stronę w swojej laptopewej przeglądarce i spojrzę na czas, a następnie otworzę tą samą stronę w telefonie bądź tablecie i spojrzę na ten sam czas, różnicę da się zobaczyć gołym okiem gdyż nie raz wynosi 2 sekundy, a nawet 10 sekund.

Może ktoś wie jak zniwelować tą różnicę do jak najmniejszej.

Tutaj ten kod.:

<script type="text/javascript">
            $(document).ready(function(){
            var id_aukcji = <?php echo $i ?>;
            var divek="#result"+id_aukcji;
            var czas_baza = new Date(<?php echo $aukcja['czas'] ?>);
              var endauction = moment.tz(czas_baza, "Europe/Warsaw");
                 $(divek).countdown(endauction.toDate(), function(event) {
                  if(event.elapsed == false)
                  {
                    $(this).html(event.strftime('%H:%M:%S'));
                    
                  }
                  else
                  {
                    $(this).html('Aukcja Zakończona');
                   
                    
                  }
                   
                   
                 });
           
          });
        </script>

 

1 odpowiedź

0 głosów
odpowiedź 6 listopada 2015 przez furas Maniak (53,800 p.)
A sprawdzałeś czy czas ustawiony na tych urządzeniach jest dokładnie taki sam co do sekundy ? Może na jednym zegarek się spieszy a na innym nie.
komentarz 6 listopada 2015 przez jensej Nowicjusz (130 p.)
wystarczy że będe pobierał czas z serwera?
komentarz 6 listopada 2015 przez furas Maniak (53,800 p.)
Czas do końca aukcji jest obliczany na podstawie czasu ustawionego w telefonie czy tablecie. A ten może się odrobinę różnić. Jeśli by w tablecie samodzielnie nie przesuwało zegarka o gdzinę przy przejściu na czas letni lub zimowy to ten wynik też by się różnił o godzinę.

Na serwerze z kodem PHP może też być niedokładny czas ;)

Ustawienie na tablecie i telefonie zegarków według serwera czasu czyli NTP może by poprawiło sytuację.

Może być jednak sytuacja, że serwer aukcyjnym będzie mieć niedokładny czas i wtedy Twój wynik nie będzie się zgadzał z czasem na serwerze aukcyjnym ;)
komentarz 6 listopada 2015 przez Comandeer Guru (600,730 p.)
A co mnie obchodzi, że na serwerze jest zły czas, skoro jedyne, czego oczekuję, to synchronizacji klienta z serwerem? ;)
komentarz 6 listopada 2015 przez furas Maniak (53,800 p.)
Jeśli serwer i komputer lokalny mają inny czas niż ten na serwerze aukcyjnym to program będzie wyświetlał, że do końca aukcji zostało 10 sekunda a na sewerze aukcyjnym będzie już dawno po aukcji.
komentarz 6 listopada 2015 przez Comandeer Guru (600,730 p.)
No właśnie. Więc czas jako taki mnie wgl nie obchodzi. Równie dobrze user może mieć strefę czasową z Hawajów a serwer operować na strefie czasowej z Syberii. Jedyne, co mnie interesuje, to synchronizacja pomiędzy serwerem, a klientem. Zamias czasów, lepiej raczej przesyłać pozostałą liczbę sekund - wówczas margines błędu jest o wiele mniejszy.
komentarz 6 listopada 2015 przez furas Maniak (53,800 p.)
Jeśli progam będzie używał wyłącznie czasu pobranego z serwera to rzeczywiście na wszystkich urządzeniach będzie podawać taki sam.

Chciałem tylko zwrócić uwagę, że zegar na serwerze aukcyjnym moze się spieszyć względem zegara serwera z które pobieramy czas (choćby o 10 sekund) i należy tą różnicę wcześniej ustalić i uwzględniać ją przy wyświetlaniu czasu.

Podobne pytania

0 głosów
0 odpowiedzi 2,427 wizyt
pytanie zadane 1 maja 2016 w JavaScript przez pangabka Nowicjusz (120 p.)
+1 głos
1 odpowiedź 2,425 wizyt
+1 głos
3 odpowiedzi 208 wizyt
pytanie zadane 31 maja 2020 w PHP przez PanProgres Nowicjusz (200 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...