>  기사  >  웹 프론트엔드  >  현지 시간을 다른 시간대로 변환하는 JavaScript 스크립트_시간 및 날짜

현지 시간을 다른 시간대로 변환하는 JavaScript 스크립트_시간 및 날짜

WBOY
WBOY원래의
2016-05-16 18:55:111325검색

하지만 다른 지역의 시간을 표시하려면 어떻게 해야 할까요? 예를 들어 본사가 다른 국가에 있고 현지 시간 대신 "홈" 시간을 보려는 경우는 어떻게 될까요?
이를 위해서는 현지 시간을 목적지 시간으로 변환하기 위해 다양한 시간 계산을 수행해야 합니다. 이 문서에서는 이러한 계산을 수행하는 방법을 설명합니다.
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










여기서 calcTime() 함수는 도시 이름과 UTC(Universal Coordinated Time) 오프셋을 시간 단위로 받아들입니다. 그런 다음 위에서 설명한 모든 계산을 내부적으로 수행하고 이 도시의 현지 시간이 포함된 문자열을 반환합니다. 다음은 목록 A의 출력 샘플입니다.
뭄바이 현지 시간은 2005년 8월 1일 월요일 오후 4시 43분 51초싱가포르 현지 시간은 2005년 8월 1일 월요일 오후 7시 13분 51초
런던 현지 시간 8월 1일 월요일 2005년 1월 1일 오후 12:13:51
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.