Konwersja czasu na inną strefę czasową w javascript

W artykule pokażę jak wyświetlić godzinę innej strefy czasowej niż lokalna na stronie www. Konieczne będzie wykonanie różnych obliczeń i przeliczenie czasu lokalnego na czas docelowy. Najpierw zapiszemy w zmiennej czas lokalny dzięki obiektowi Date. Następnie przedstawimy ten czas jako liczbę milisekund od 1 stycznia 1970 roku, wywołując getTime.

 d = new Date();
localTime = d.getTime();
Następnie znajdziemy przesunięcie lokalnej strefy czasowej za pomocą metody getTimezoneOffset obiektu Date. Domyślnie ta metoda zwraca przesunięcie strefy czasowej w minutach, więc przekonwertujemy tę wartość na milisekundy.
localOffset = d.getTimezoneOffset() * 60 * 1000;
Uzyskamy teraz bieżący czas UTC, dodając przesunięcie lokalnej strefy czasowej do czasu lokalnego.
utc = localTime + localOffset;
W tym momencie zmienna utc zawiera aktualny czas UTC. Jednak ta wartość czasu jest wyrażana jako liczba milisekund od 1 stycznia 1970 roku. Na razie zachowaj to w ten sposób, ponieważ do wykonania mamy jeszcze kilka obliczeń. Po uzyskaniu czasu UTC uzyskaj przesunięcie UTC miasta docelowego w godzinach, przekonwertuj je na milisekundy i dodaj do czasu UTC.
offset = 9;//in hours
tokyo = utc + (3600 * 1000 * offset);
W tym momencie zmienny tokyo zawiera czas lokalny w mieście Tokio. Ten czas lokalny jest wyrażony jako liczba milisekund od 1 stycznia 1970 roku. Nie jest to zbyt czytelne, dlatego musimy wykonać jeszcze dodatkowych obliczeń. Zmień wartość czasu obliczoną w poprzednim kroku na czytelny dla człowieka ciąg znaków daty / godziny, inicjując z nim nowy obiekt Date i wywołując metodę toLocaleString obiektu.
nd = new Date(tokyo);
tokyo_string = nd.toLocaleString();