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.
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 – godziny otwarcia plugin WordPress. Zaczynamy.

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.
dark
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 funkcji '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.