하지만 다른 지역의 시간을 표시하려면 어떻게 해야 할까요? 예를 들어 본사가 다른 국가에 있고 현지 시간 대신 "홈" 시간을 보려는 경우는 어떻게 될까요?
이를 위해서는 현지 시간을 목적지 시간으로 변환하기 위해 다양한 시간 계산을 수행해야 합니다. 이 문서에서는 이러한 계산을 수행하는 방법을 설명합니다.
1단계:
첫 번째 단계는 현지 시간을 확인하는 것입니다. JavaScript에서는 Data() 개체를 초기화하여 이 작업을 쉽게 수행할 수 있습니다.
// 현재 위치에 대한 Date 객체 생성
d = new Date();
Data() 객체의 getTime() 메서드를 호출하면 1970년 1월 1일부터 현재까지의 시간을 표시할 수 있습니다. 사이의 밀리초 수입니다.
// 1970년 1월 1일 이후의 msec로 변환
localTime = d.getTime();
2단계:
다음 단계에서는 Data( ) 개체 시간 오프셋 값입니다. 기본적으로 이 방법은 시간대 오프셋 값 결과를 분 단위로 표시하므로 이 값은 이전 계산에서 밀리초로 변환됩니다.
// 현지 UTC 오프셋을 가져와서 msec로 변환합니다.
localOffset = d.getTimezoneOffset() * 60000
getTimezoneOffset() 메서드의 음수 반환 값은 현지 시간이 Universal Standard 이전임을 나타냅니다. Time (UTC) , 양수 반환 값은 현지 시간이 협정 세계시(UTC)보다 뒤처져 있음을 나타냅니다.
참고: 60,000의 곱셈 인자를 어떻게 얻었는지 궁금하신 경우 1,000밀리초는 1초와 같고 1분은 60초와 같다는 점을 기억하세요. 따라서 분을 밀리초로 변환하려면 60에 1000을 곱하면 60000이 됩니다.
3단계
현지 시간과 현지 시간대 오프셋을 추가하여 현재 국제 표준시(UTC)를 가져옵니다.
// UTC 시간을 밀리초 단위로 가져옵니다.
utc = localTime localOffset
여기서 변수 utc에는 현재 국제 표준시(UTC)가 포함됩니다. 그러나 이 시간은 1970년 1월 1일부터 현재까지의 밀리초(millisecond) 수로 표현된다. 아직 해야 할 계산이 남아 있으므로 지금은 이렇게 표현하겠습니다.
4단계
국제 표준시(UTC)를 획득한 후 대상 도시의 국제 표준시(UTC)의 시간별 오프셋 값을 획득하여 밀리초로 변환하고 국제 표준시(UTC)를 추가합니다. . 참고: 3,600,000의 곱셈 인자를 어떻게 얻었는지 궁금하신 경우 1000밀리초는 1초와 같고 1시간은 3600초와 같다는 점을 기억하세요. 따라서 시간을 밀리초로 변환하려면 3600에 1000을 곱하면 3600000이 됩니다.
이때 변수 Bombay에는 인도 뭄바이의 현지 시간이 포함되어 있습니다. 이 현지 시간은 1970년 1월 1일부터 현재까지의 밀리초 단위로 표시됩니다. 분명히 이것은 말이 되지 않으므로 몇 가지 계산을 해야 합니다.
5단계
새 Data() 개체를 초기화하고 이 개체의 toLocalString() 메서드를 호출하여 이전 단계에서 계산된 시간 값을 누구나 이해할 수 있는 날짜/시간 문자열로 변환합니다.
// msec 값을 날짜 문자열로 변환
nd = new Date(bombay)
document.writeln("봄베이 시간은 " nd.toLocaleString() "
")
This 방법 변환이 완료되었습니다!
요약
위 단계를 이해한 후 모든 계산을 수행하고 시간 값을 반환하는 간단한 사용자 정의 함수 calcTime()을 생성하는 이 스크립트(목록 A)를 다시 살펴보겠습니다.
목록 A