Porównanie czasu w javaScript

Dawno nic nie pisałem, więc dzisiaj postanowiłem, że będzie krótki poradnik. Chciałbym dzisiaj opisać temat zarządzania czasem, a konkretniej, sprawdzić czy obecna godzina jest z podanego przedziału. Można to wykorzystać np. do pokazania na stronie czy sklep jest jeszcze otwarty. Zaczynamy.

Porównanie czasu w javaScript

Przykład

Zaczynamy od razu od konkretnego przykładu. Dany sklep jest otwarty w godzinach 9:00 - 17:00. Naszym zadaniem będzie pokazać użytkownikowi, czy sklep jest jeszcze otwarty, czy już zamknięty.

Oczywiście nie uwzględniamy w tym przykładzie dnia tygodnia, skupiamy się tylko na zakresie godzinowym.

Wyjaśnienie

Zaczynamy od napisania funkcji 'compareTime()' z dwoma parametrami określającymi godzinę otwarcia i godzinę zamknięcia. Pobieramy bieżący czas, a następnie rozbijamy oba parametry po dwukropku, by uzyskać godziny i minuty. Będzie to nam potrzebne do funkcji (wbudowanej JS) 'setHours()', która przyjmuje parametry kolejno: godzina, minuta, sekunda, milisekunda. Nas interesują tylko pierwsze dwa parametry, zaś sekundę zerujemy. Co otrzymamy z tej funkcji? Liczbę milisekund od północy 1 stycznia 1970 w strefie czasowej południka zerowego.

Na koniec fukcji 'compareTime()' porównujemy bieżący czas, czy jest większy od godziny otwarcia i zarazem mniejszy od godziny zamknięcia. Tutaj ważne, aby użyć operatora '&&'. Zwracamy wartość boolean (true/false) i gotowe.

Podsumowanie

Powyższy przykład oczywiście można zapisać krócej lub do rozwiązania użyć zewnętrznej biblioteki 'moment.js' (jest bardzo przydatna przy większej ilości operacji na dacie i czasie), jednak chciałem pokazać jak to działa "od kuchni", możliwie prostym sposobem. Mam nadzieję, że komuś się przyda to rozwiązanie jako baza rozwojowa.

Powiadomienie cookies

Strona lukaszbacik.pl zapisuje pliki cookies na komputerach odwiedzających ją internautów. Czytaj więcej.