Aby zrobić zegar pokazujący, ile czasu istnieje strona internetowa (tzn. ile czasu minęło od jej uruchomienia), możemy użyć JavaScriptu. W tym celu potrzebujemy znać datę startu strony i stworzyć kod, który będzie odliczał czas od tej daty.
Oto przykładowy kod, który można osadzić na stronie HTML, aby wyświetlić zegar:
HTML i JavaScript
<!DOCTYPE html> <html lang="pl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Zegar</title> <style> #timer { font-family: Arial, sans-serif; font-size: 24px; margin: 20px; color: #333; } </style> </head> <body> <div id="timer"></div> <script> // Ustaw datę startu strony (rok, miesiąc - 1, dzień, godzina, minuta, sekunda) const startDate = new Date(2022, 0, 1, 0, 0, 0); // Przykład: 1 stycznia 2022, 00:00:00 function updateTimer() { const now = new Date(); const timeDiff = now - startDate; // Różnica w milisekundach const days = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); const hours = Math.floor((timeDiff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); const minutes = Math.floor((timeDiff % (1000 * 60 * 60)) / (1000 * 60)); const seconds = Math.floor((timeDiff % (1000 * 60)) / 1000); // Wyświetlanie wyniku document.getElementById('timer').innerHTML = days + " dni, " + hours + " godzin, " + minutes + " minut, " + seconds + " sekund"; } // Aktualizowanie zegara co sekundę setInterval(updateTimer, 1000); </script> </body> </html>
Wyjaśnienie kodu:
- startDate – definiujemy datę rozpoczęcia istnienia strony (w formacie JavaScript).
- updateTimer – funkcja, która oblicza różnicę między aktualną datą a datą startu strony, a następnie przekształca tę różnicę w dni, godziny, minuty i sekundy.
- setInterval – co sekundę (1000 milisekund) wywoływana jest funkcja
updateTimer
, która aktualizuje licznik na stronie. - HTML – prosty szkielet strony z elementem
<div>
, w którym wyświetlany jest licznik.
Jak to działa:
Po osadzeniu tego kodu na swojej stronie, zegar będzie odliczał czas od podanej daty startu i aktualizował się na bieżąco.