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();
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();