Cześć Jestem nowicjuszem i potrzebuję pomocy z kodem ale i radę. Chodzi o odliczanie do wydarzenia.
Jak obliczać czas od daty serwera a nie lokalnej? ale tu proszę też o pomoc w zrozumieniu, czy to ma sens? bo kto zmienia datę systemową?, poza tym dojdą kolejne linijki kodu gdy mamy różnice w czasie co na razie jest już czarną magią dla mnie
Jak dodać kilka wydarzeń (różnych odliczań) na jednej stronie z jednego kodu
Mój kod na teraz wygląda tak
JavaScript
var countDownDateTime = new Date("2017-11-12 12:00:00").getTime(); var myInterval = setInterval(function () { "use strict"; var currentDateTime = new Date().getTime(); var diff = countDownDateTime - currentDateTime; var days = Math.floor(diff / (1000 * 60 * 60 * 24)); var hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((diff % (1000 * 60)) / 1000); if (days<10) {days = '0' + days;} if (hours<10) {hours ='0' + hours;} if (minutes<10) {minutes ='0' + minutes;} if (seconds<10) {seconds ='0' + seconds;} document.getElementById("days").innerHTML = days; document.getElementById("hours").innerHTML = hours; document.getElementById("minutes").innerHTML = minutes; document.getElementById("seconds").innerHTML = seconds; if (diff < 0) { clearInterval(myInterval); var elem = document.getElementById("clear"); elem.parentNode.removeChild(elem); } }, 1000);
<http://december.com/html/4/element/ul.html id="clear"> <http://december.com/html/4/element/li.html><http://december.com/html/4/element/span.html id="days"></http://december.com/html/4/element/span.html>Dni</http://december.com/html/4/element/li.html> <http://december.com/html/4/element/li.html><http://december.com/html/4/element/span.html id="hours"></http://december.com/html/4/element/span.html>Godzin</http://december.com/html/4/element/li.html> <http://december.com/html/4/element/li.html><http://december.com/html/4/element/span.html id="minutes"></http://december.com/html/4/element/span.html>Minut</http://december.com/html/4/element/li.html> <http://december.com/html/4/element/li.html><http://december.com/html/4/element/span.html id="seconds"></http://december.com/html/4/element/span.html>Sekund</http://december.com/html/4/element/li.html> </http://december.com/html/4/element/ul.html>
https://prophp.pl/advice/show/4/w_jaki_sposob_przekazywac_czas_pomiedzy_php_i_js%3F
https://prophp.pl/article/28/propagacja_i_delegacja_zdarzen_w_javascript
Ma to sens bo weź pod uwagę różne strefy czasowe użytkowników.
Dobrze wszystko jest zrozumiałe ale przeglądam kody w necie "countdown timer php" Jak pobrać w tym moim kodzie czas z serwera wszędzie gdzie nie wejdę jest tylko javascript albo jquery nie ma jak użyć czasu z serwera. Jak próbowałem to ogarnąć tak: ale jak tu funkcję dołożyć by czas się na stronie na bieżąco się odświeżał odświeżał
<?php $date = strtotime("2019-12-05 12:00:00"); $remaining = $date - time(); $days = floor ($remaining / 86400); $hours = floor (($remaining % 86400) / 3600); $min = floor (($remaining % 3600) / 60); $sec = floor ($remaining % 60); ?> <http://december.com/html/4/element/body.html> <http://december.com/html/4/element/div.html id="container"> <http://december.com/html/4/element/div.html class="m"> <http://december.com/html/4/element/span.html><?php echo $days; ?></http://december.com/html/4/element/span.html>Dni</http://december.com/html/4/element/div.html> <http://december.com/html/4/element/div.html class="m"> <http://december.com/html/4/element/span.html><?php echo $hours; ?></http://december.com/html/4/element/span.html>Godzin</http://december.com/html/4/element/div.html> <http://december.com/html/4/element/div.html class="m"> <http://december.com/html/4/element/span.html><?php echo $min; ?></http://december.com/html/4/element/span.html>Minut</http://december.com/html/4/element/div.html> <http://december.com/html/4/element/div.html class="m"> <http://december.com/html/4/element/span.html><?php echo $sec; ?></http://december.com/html/4/element/span.html>Sekund</http://december.com/html/4/element/div.html> </http://december.com/html/4/element/div.html> </http://december.com/html/4/element/body.html>
Musiałbyś stronę co sekundę przeładować co oczywiście nie ma sensu. Dynamiczne odświeżanie robi się w js. Wystarczy pobrać czas raz po załadowaniu i na nim operować.
Cześć mógłbym prosić o poprawę tego kodu, nie mam pojęcia dlaczego to nie działa, w zamyślę ma to być multi odliczanie czyli w HTMLU dopiero podaję datę i godzinę. Najlepsze jest to że kod działa jsfiddle.net na tej samej bibliotece jQuery co u mnie najnowszej 3.2.1. Co jest u mnie nie tak? Linki do plików mam poprawne no po prostu nie wiem
HTML
<http://december.com/html/4/element/script.html src="jquery-3.2.1.min.js"></http://december.com/html/4/element/script.html> <http://december.com/html/4/element/script.html type="text/javascript" src="js/Timer.js"></http://december.com/html/4/element/script.html> </http://december.com/html/4/element/head.html> <http://december.com/html/4/element/body.html> <http://december.com/html/4/element/div.html data-countdown="2019/01/01"> <http://december.com/html/4/element/div.html class="days"><http://december.com/html/4/element/span.html>dni</http://december.com/html/4/element/span.html></http://december.com/html/4/element/div.html> <http://december.com/html/4/element/div.html class="hours"><http://december.com/html/4/element/span.html>godzin</http://december.com/html/4/element/span.html></http://december.com/html/4/element/div.html> <http://december.com/html/4/element/div.html class="minutes"><http://december.com/html/4/element/span.html>minut</http://december.com/html/4/element/span.html></http://december.com/html/4/element/div.html> <http://december.com/html/4/element/div.html class="seconds"><http://december.com/html/4/element/span.html>sekund</http://december.com/html/4/element/span.html></http://december.com/html/4/element/div.html> </http://december.com/html/4/element/div.html>
$('[data-countdown]').each(function() { "use strict" ; var $this = $(this), finalDate = $(this).data('countdown'); $this.countdown(finalDate, function(event) { $(".days").text(event.strftime("%-d")); $(".hours").text(event.strftime("%H")); $(".minutes").text(event.strftime("%M")); $(".seconds").text(event.strftime("%S")); }); });
Również podepnę się pod wątek by nie robić nowego. Chciałbym aby skrypt wyświetlał na żywo ile czasu w godz, min, sec jest od zaznaczonej daty. Jeszcze bardziej jakby wybraną datę można było pobrać z bazy danych i od niej liczył ile czasu mineło. Bez podawania dni. Same godziny, min, sec. ktoś pomoże ?
$data = "2019-03-25 15:00:00";
<http://december.com/html/4/element/script.html> var countDownDate = new Date("2019-03-25 15:00:00").getTime(); var x = setInterval(function() { var now = new Date().getTime(); var distance = countDownDate - now; var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); document.getElementById("demo").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s "; }, 1000); </http://december.com/html/4/element/script.html> <http://december.com/html/4/element/p.html id="demo"></http://december.com/html/4/element/p.html>
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)